Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.332
 
1.333
 
MAIN:ragge:20140806152358
 
trees.c
_>341341                         return bcon(n);
 342342                 }
 343343         } else if ((cdope(o)&ASGOPFLG) && o != RETURN && o != CAST) {
<> 344+                if (l->n_op == SCONV && l->n_left->n_op == FLD)
  345+                        l = nfree(l);
344346                 /*
 345347                  * Handle side effects by storing address in temporary q.
 346348                  * Side effect nodes always have an UMUL.
     
 !
367369                 l = q;
 368370                 o = COMOP;
 369371         } else if (o == INCR || o == DECR) {
<> 372+                if (l->n_op == SCONV && l->n_left->n_op == FLD)
  373+                        l = nfree(l);
370374                 /*
 371375                  * Rewrite to (t=d,d=d+1,t)
 372376                  */
     
 !
386390                         r = rewincop(l, r, o == INCR ? PLUSEQ : MINUSEQ);
 387391                 l = q;
 388392                 o = COMOP;
<> 393+        } else if (o == ASSIGN && l->n_op == SCONV && l->n_left->n_op == FLD) {
  394+                l = nfree(l);
389395         }
 390396 
 391397 
     
 !
11741180         struct attr *ap, *xap, *yap;
 11751181         union dimfun *d;
 11761182         TWORD t, q;
<>1177 -        int dsc;
  1183+        int dsc, fsz;
11781184         OFFSZ off;
 11791185         struct symtab *s;
 11801186 
     
 !
12211227         if (dsc & FIELD) {
 12221228                 TWORD ftyp = s->stype;
 12231229                 int fal = talign(ftyp, ap);
<> 1230+                fsz = dsc&FLDSIZ;
12241231                 off = (off/fal)*fal;
 12251232                 p = offplus(p, off, t, q, d, ap);
 12261233                 p = block(FLD, p, NIL, ftyp, 0, ap);
 12271234                 p->n_qual = q;
<>1228 -                p->n_rval = PKFIELD(dsc&FLDSIZ, s->soffset%fal);
  1235+                p->n_rval = PKFIELD(fsz, s->soffset%fal);
  1236+                /* make type int or some other signed type */
  1237+                if (fsz < SZINT)
  1238+                        ftyp = INT;
  1239+                else if (fsz > SZINT && fsz < SZLONG)
  1240+                        ftyp = LONG;
  1241+                else if (fsz > SZLONG && fsz < SZLONGLONG)
  1242+                        ftyp = LONGLONG;
  1243+                if (ftyp != p->n_type)
  1244+                        p = makety(p, ftyp, 0, 0, 0);
<_12291245         } else {
 12301246                 p = offplus(p, off, t, q, d, ap);
 12311247 #ifndef CAN_UNALIGN
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-11-01 01:35 +0100