Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.375
 
1.376
 
MAIN:ragge:20140702153141
 
cgram.y
_>198198 static NODE *namekill(NODE *p, int clr);
 199199 static NODE *aryfix(NODE *p);
 200200 static void savlab(int);
<> 201+static void xcbranch(NODE *, int);
201202 extern int *mkclabs(void);
 202203 
 203204 #define TYMFIX(inp) { \
     
 !
949950                 }
 950951                 ;
 951952 ifprefix:       C_IF '(' e ')' {
<>952 -                        cbranch(buildtree(NOT, eve($3), NIL), bcon($$ = getlab()));
  953+                        xcbranch(eve($3), $$ = getlab());
953954                         reached = 1;
 954955                 }
 955956                 ;
     
 !
974975                         if (flostat == FLOOP)
 975976                                 tfree($3);
 976977                         else
<>977 -                                cbranch(buildtree(NOT, $3, NIL), bcon(brklab));
  978+                                xcbranch($3, brklab);
978979                 }
 979980                 ;
 980981 forprefix:        C_FOR  '('  .e  ';' .e  ';' {
     
 !
987988                         plabel( $$ = getlab());
 988989                         reached = 1;
 989990                         if ($5)
<>990 -                                cbranch(buildtree(NOT, $5, NIL), bcon(brklab));
  991+                                xcbranch($5, brklab);
991992                         else
 992993                                 flostat |= FLOOP;
 993994                 }
     
 !
998999                         plabel( $$ = getlab());
 9991000                         reached = 1;
 10001001                         if ($5)
<>1001 -                                cbranch(buildtree(NOT, $5, NIL), bcon(brklab));
  1002+                                xcbranch($5, brklab);
10021003                         else
 10031004                                 flostat |= FLOOP;
 10041005                 }
     
 !
14401441                 r = tempnode(num, type, 0, 0);
 14411442                 q = xbcon(p[i]->sval, NULL, type);
 14421443                 r = buildtree(NE, r, clocal(q));
<>1443 -                cbranch(buildtree(NOT, r, NIL), bcon(p[i]->slab));
  1444+                xcbranch(r, p[i]->slab);
14441445         }
 14451446         if (p[0]->slab > 0)
 14461447                 branch(p[0]->slab);
     
 !
21162117         case ASSIGN:
 21172118         case EQ:
 21182119         case NE:
<> 2120+        case OROR:
  2121+        case ANDAND:
21192122 #ifndef NO_COMPLEX
 21202123                 p1 = eve(p1);
 21212124                 p2 = eve(p2);
     
 !
21442147         case AND:
 21452148         case OR:
 21462149         case ER:
<>2147 -        case OROR:
 2148 -        case ANDAND:
21492150         case EREQ:
 21502151         case OREQ:
 21512152         case ANDEQ:
     
 !
23582359         labp = 0;
 23592360         return rv;
 23602361 }
<_ 2362+
  2363+void
  2364+xcbranch(NODE *p, int lab)
  2365+{
  2366+#ifndef NO_COMPLEX
  2367+        if (ANYCX(p))
  2368+                p = cxop(NE, p, bcon(0));
  2369+#endif
  2370+        cbranch(buildtree(NOT, p, NIL), bcon(lab));
  2371+}
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-01 18:16 +0200