Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.64
 
1.65
 
MAIN:ragge:20071209180057
 
local.c
_>9191         q = buildtree(PLUS, q, r);
 9292         q = block(UMUL, q, 0, PTR|VOID, 0, MKSUE(VOID));
 9393         q = block(UMUL, q, 0, p->n_type, p->n_df, p->n_sue);
<> 94+        q->n_sp = p->n_sp; /* for init */
9495         nfree(p);
 9596         return q;
 9697 }
     
 !
105106 
 106107         q = tempnode(gotnr, PTR|VOID, 0, MKSUE(VOID));
 107108         r = bcon(0);
<>108 -        if (p->n_sp->slevel > 0) {
  109+        if (p->n_sp->slevel > 0 || p->n_sp->sclass == ILABEL) {
109110                 char buf[32];
 110111                 snprintf(buf, 32, LABFMT, (int)p->n_sp->soffset);
 111112                 r->n_sp = picsymtab(buf, "@GOTOFF");
     
 !
115116         r->n_sp->stype = p->n_sp->stype;
 116117         q = buildtree(PLUS, q, r);
 117118         q = block(UMUL, q, 0, p->n_type, p->n_df, p->n_sue);
<> 119+        q->n_sp = p->n_sp; /* for init */
118120         nfree(p);
 119121         return q;
 120122 }
     
 !
163165                         p = stref(block(STREF, r, p, 0, 0, 0));
 164166                         break;
 165167 
<> 168+                case USTATIC:
  169+                        if (kflag == 0)
  170+                                break;
  171+                        /* FALLTHROUGH */
166172                 case STATIC:
 167173                         if (kflag == 0) {
 168174                                 if (q->slevel == 0)
     
 !
185191                         if (blevel > 0)
 186192                                 p = picext(p);
 187193                         break;
<> 194+
  195+                case ILABEL:
  196+                        if (kflag && blevel)
  197+                                p = picstatic(p);
  198+                        break;
188199                 }
 189200                 break;
 190201 
<> 202+        case ADDROF:
  203+                if (kflag == 0 || blevel == 0)
  204+                        break;
  205+                /* char arrays may end up here */
  206+                l = p->n_left;
  207+                if (l->n_op != NAME ||
  208+                    (l->n_type != ARY+CHAR && l->n_type != ARY+WCHAR_TYPE))
  209+                        break;
  210+                l = p;
  211+                p = picstatic(p->n_left);
  212+                nfree(l);
  213+                if (p->n_op != UMUL)
  214+                        cerror("ADDROF error");
  215+                l = p;
  216+                p = p->n_left;
  217+                nfree(l);
  218+                break;
  219+
191220         case UCALL:
 192221         case USTCALL:
 193222                 if (kflag == 0)
     
 !
421450 fixnames(NODE *p)
 422451 {
 423452         struct symtab *sp;
<> 453+        struct suedef *sue;
424454         NODE *q;
 425455         char *c;
 426456         int isu;
     
 !
429459                 return;
 430460         isu = 0;
 431461         q = p->n_left;
<> 462+        sue = q->n_sue;
432463         if (q->n_op == UMUL)
 433464                 q = q->n_left, isu = 1;
 434465         if (q->n_op == PLUS && q->n_left->n_op == TEMP &&
 435466             q->n_right->n_op == ICON) {
 436467                 sp = q->n_right->n_sp;
 437468 
<> 469+                if (sp == NULL)
  470+                        return/* nothing to do */
438471                 if (sp->sclass == STATIC && !ISFTN(sp->stype))
 439472                         return; /* function pointer */
 440473 
     
 !
454487                         nfree(p->n_left->n_left);
 455488                 nfree(p->n_left);
 456489                 p->n_left = q;
<> 490+                q->n_sue = sue;
457491         }
 458492 }
 459493 
     
 !
667701         if (t > BTMASK)
 668702                 t = INT; /* pointer */
 669703 
<> 704+        while (p->n_op == SCONV || p->n_op == PCONV) {
  705+                NODE *l = p->n_left;
  706+                l->n_type = p->n_type;
  707+                p = l;
  708+        }
  709+
<_670710         if (kflag && (p->n_op == PLUS || p->n_op == UMUL)) {
 671711                 if (p->n_op == UMUL)
 672712                         p = p->n_left;
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-09-02 11:16 +0200