Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.297
 
1.298
 
MAIN:ragge:20110808192258
 
trees.c
_>332332                         case GT:
 333333                                 n = FLOAT_GT(l->n_dcon, r->n_dcon);
 334334                                 break;
<> 335+                        default:
  336+                                n = 0; /* XXX flow analysis */
335337                         }
 336338                         nfree(r);
 337339                         nfree(l);
     
 !
28402842                 if (split) {
 28412843                         q = cstknode(p->n_type, p->n_df, p->n_ap);
 28422844                         r = ccopy(q);
<>2843 -                        q = buildtree(ASSIGN, q, p);
  2845+                        q = block(ASSIGN, q, p, p->n_type, p->n_df, p->n_ap);
28442846                         ecode(q);
 28452847                         return r;
 28462848                 }
     
 !
28562858 #ifndef WORD_ADDRESSED
 28572859 
 28582860 static NODE *
<>2859 -pprop(NODE *p, TWORD t)
  2861+pprop(NODE *p, TWORD t, struct attr *ap)
28602862 {
 28612863         int o = p->n_op;
 28622864 
<> 2865+#ifdef PCC_DEBUG
  2866+        if (p->n_op == TEMP && p->n_type != t &&
  2867+            !(ISPTR(p->n_type) && ISPTR(t))) {
  2868+                cerror("TEMP type change: %x -> %x", p->n_type, t);
  2869+        }
  2870+#endif
  2871+
28632872         p->n_type = t;
<> 2873+        p->n_ap = ap;
28642874         switch (o) {
 28652875         case UMUL:
 28662876                 t = INCREF(t);
 28672877                 break;
 28682878         case ADDROF:
<> 2879+                if (p->n_left->n_op == TEMP) {
  2880+                        /* Will be converted to memory in pass2 */
  2881+                        p->n_left->n_type = DECREF(t);
  2882+                        return p;
  2883+                }
28692884                 if (ISPTR(p->n_left->n_type) && !ISPTR(DECREF(t)))
 28702885                         break; /* not quite correct */
 28712886                 t = DECREF(t);
     
 !
28802895                 if (!ISPTR(p->n_left->n_type)) {
 28812896                         if (!ISPTR(p->n_right->n_type))
 28822897                                 cerror("no * in PLUS");
<>2883 -                        p->n_right = pprop(p->n_right, t);
  2898+                        p->n_right = pprop(p->n_right, t, ap);
28842899                 } else
<>2885 -                        p->n_left = pprop(p->n_left, t);
  2900+                        p->n_left = pprop(p->n_left, t, ap);
28862901                 return p;
 28872902 
 28882903         case MINUSEQ:
 28892904         case MINUS:
 28902905                 if (ISPTR(p->n_left->n_type)) {
 28912906                         if (ISPTR(p->n_right->n_type))
 28922907                                 break; /* change both */
<>2893 -                        p->n_left = pprop(p->n_left, t);
  2908+                        p->n_left = pprop(p->n_left, t, ap);
28942909                 } else
<>2895 -                        p->n_right = pprop(p->n_right, t);
  2910+                        p->n_right = pprop(p->n_right, t, ap);
28962911                 return p;
 28972912 
 28982913         case CALL:
     
 !
29152930                 cerror("pprop op error %d\n", o);
 29162931         }
 29172932         if (coptype(o) == BITYPE)
<>2918 -                p->n_right = pprop(p->n_right, t);
  2933+                p->n_right = pprop(p->n_right, t, ap);
29192934         if (coptype(o) != LTYPE)
<>2920 -                p->n_left = pprop(p->n_left, t);
  2935+                p->n_left = pprop(p->n_left, t, ap);
29212936         return p;
 29222937 }
 29232938 
     
 !
29512966                 l->n_sp = sp;
 29522967         } else if (!ISPTR(l->n_type))
 29532968                 return p;
<>2954 -        q = pprop(p->n_left, p->n_type);
  2969+        q = pprop(p->n_left, p->n_type, p->n_ap);
<_29552970         nfree(p);
 29562971         return q;
 29572972 }
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-07-10 05:59 +0200