Quick Search:

Mode

Context

Displaying 3 lines of context. None | Less | More | Full

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.14
 
1.15
 
MAIN:ragge:20140309093258
 
local.c
_>7070         delp:   l->n_type = p->n_type;
 7171                 l->n_qual = p->n_qual;
 7272                 l->n_df = p->n_df;
<>73 -                l->n_sue = p->n_sue;
  73+                l->n_ap = p->n_ap;
7474                 nfree(p);
 7575                 p = l;
 7676                 break;
     
 !
346346 
 347347         sp = inlalloc(sizeof(struct symtab));
 348348         sp->sclass = STATIC;
<>349 -        sp->ssue = 0;
  349+        sp->sap = 0;
350350         sp->slevel = 1; /* fake numeric label */
 351351         sp->soffset = getlab();
 352352         sp->sflags = 0;
 353353         sp->stype = p->n_type;
 354354         sp->squal = (CON >> TSHIFT);
 355355 
 356356         defloc(sp);
<>357 -        ninval(0, sp->ssue->suesize, p);
  357+        ninval(0, tsize(sp->stype, sp->sdf, sp->sap), p);
358358 
 359359         p->n_op = NAME;
 360360         p->n_lval = 0;
     
 !
389389  * indirections must be fullword.
 390390  */
 391391 NODE *
<>392 -offcon(OFFSZ off, TWORD t, union dimfun *d, struct suedef *sue)
  392+offcon(OFFSZ off, TWORD t, union dimfun *d, struct attr *ap)
393393 {
 394394         register NODE *p;
 395395 
 396396         if (xdebug)
<>397 -                printf("offcon: OFFSZ %ld type %x dim %p siz %d\n",
 398 -                    off, t, d, sue->suesize);
  397+                printf("offcon: OFFSZ %ld type %x dim %p siz %ld\n",
  398+                    off, t, d, tsize(t, d, ap));
399399 
 400400         p = bcon(0);
 401401         p->n_lval = off/SZINT;  /* Default */
     
 !
431431                 cerror("roundsp");
 432432 
 433433         /* save the address of sp */
<>434 -        sp = block(REG, NIL, NIL, PTR+INT, t->n_df, t->n_sue);
  434+        sp = block(REG, NIL, NIL, PTR+INT, t->n_df, t->n_ap);
435435         sp->n_lval = 0;
 436436         sp->n_rval = STKREG;
 437437         t->n_type = sp->n_type;
     
 !
449449  * mat be associated with a label
 450450  */
 451451 int
<>452 -ninval(NODE *p)
  452+ninval(CONSZ off, int fsz, NODE *p)
453453 {
<>454 -        struct symtab *q;
 455 -        TWORD t;
 456 -
 457 -        p = p->n_left;
 458 -        t = p->n_type;
 459 -        if (t > BTMASK)
 460 -                p->n_type = t = INT; /* pointer */
 461 -
 462 -        if (p->n_op != ICON)
 463 -                cerror("ninval: init node not constant");
 464 -
 465 -        switch (t) {
 466 -        case LONG:
 467 -        case ULONG:
 468 -                inval(p->n_lval & 0xffff);
 469 -                inval(p->n_lval >> 16);
 470 -                break;
 471 -        case INT:
 472 -        case UNSIGNED:
 473 -                printf("\t.word 0%o", (short)p->n_lval);
 474 -                if ((q = p->n_sp) != NULL) {
 475 -                        if ((q->sclass == STATIC && q->slevel > 0)) {
 476 -                                printf("+" LABFMT, q->soffset);
 477 -                        } else
 478 -                                printf("+%s", exname(q->soname));
 479 -                }
 480 -                printf("\n");
 481 -                break;
 482 -        default:
 483 -                return 0;
  454+        switch (p->n_type) {
  455+        case FLOAT:
  456+        case DOUBLE:
  457+        case LDOUBLE:
  458+                cerror("ninval");
484459         }
 485460         return 1;
 486461 }
     
 !
518493         return (type);
 519494 }
 520495 
<> 496+#if 0
521497 /* curid is a variable which is defined but
 522498  * is not initialized (and not a function );
 523499  * This routine returns the storage class for an uninitialized declaration
     
 !
527503 {
 528504         return(EXTERN);
 529505 }
<> 506+#endif
530507 
 531508 void
 532509 calldec(NODE *p, NODE *q)
     
 !
538515 {
 539516 }
 540517 
<> 518+#if 0
541519 /* make a common declaration for id, if reasonable */
 542520 void
 543521 commdec(struct symtab *q)
     
 !
582560         lastloc = locc;
 583561         printf("        .%s\n", loctbl[locc]);
 584562 }
<> 563+#endif
  564+
<_585565 /*
 586566  * Give target the opportunity of handling pragmas.
 587567  */
FishEye: Open Source License registered to PCC.
Your maintenance has expired. You can renew your license at http://www.atlassian.com/fisheye/renew
Atlassian FishEye, CVS analysis. (Version:1.6.3 Build:build-336 2008-11-04) - Administration - Page generated 2014-10-31 14:34 +0100