]> andersk Git - splint.git/commitdiff
Fixed manual csvoverwrite.
authorevans1629 <evans1629>
Wed, 13 Aug 2003 02:34:29 +0000 (02:34 +0000)
committerevans1629 <evans1629>
Wed, 13 Aug 2003 02:34:29 +0000 (02:34 +0000)
Fixed && and || for non-predicate guards.

doc/manual.doc
src/context.c
src/exprNode.c
src/usymtab.c

index aa37b3880dfd8b6f4bc0880e9b74e1d3a183890a..76d469bacd2fa7a1fc5d4ee0b320f8be6ab6ad9e 100644 (file)
Binary files a/doc/manual.doc and b/doc/manual.doc differ
index 2eee86bdff7f8335ddcc18cf096580b284650482..6493cc1b5b8a75c190458eb4f8a00cfa9a1bb23f 100644 (file)
@@ -1579,7 +1579,7 @@ context_enterUnknownMacro (/*@dependent@*/ uentry e)
 
 void context_enterAndClause (exprNode e)
 {
-  
+  DPRINTF (("enter and clause: %s", exprNode_unparse (e)));
   usymtab_trueBranch (guardSet_copy (exprNode_getGuards (e)));
   pushClause (ANDCLAUSE);
 }
index bdd0870ef029ddf4b868601cea9f265439ba4d14..dca9548f46e4e2a13587fa788639c142107c8e29 100644 (file)
@@ -1011,6 +1011,7 @@ exprNode exprNode_createId (/*@observer@*/ uentry c)
        }
 
       e->guards = guardSet_new ();
+
       e->sets = sRefSet_new ();
       e->msets = sRefSet_new ();
       e->uses = sRefSet_new ();
@@ -5369,10 +5370,14 @@ exprNode_makeOp (/*@keep@*/ exprNode e1, /*@keep@*/ exprNode e2,
 
   if (opid == OR_OP)
     {
+      exprNode_produceGuards (e2); 
       ret->guards = guardSet_or (ret->guards, e2->guards);
     }
   else if (opid == AND_OP)
     {
+      exprNode_produceGuards (e2); /* evans 2003-08-13: need to produce guards for expression */
+      /* Shouldn't this have already happened? */
+      DPRINTF (("Anding guards: %s / %s", guardSet_unparse (ret->guards), guardSet_unparse (e2->guards)));
       ret->guards = guardSet_and (ret->guards, e2->guards);
     }
   else
index 0243fb34d8ed02ae097ae54bbb7baacba4d78450..7a3a0974c7bca4b0d4e5b2b5687125d90f24692c 100644 (file)
@@ -2749,6 +2749,10 @@ usymtab_popAndBranch (exprNode pred, /*@unused@*/ exprNode expr)
        }
     }
 
+  DPRINTF (("Popping and: %s / %s",
+           guardSet_unparse (utab->guards),
+           guardSet_unparse (exprNode_getGuards (pred))));
+
   utab->guards = guardSet_levelUnionFree (utab->guards, 
                                          guardSet_invert (exprNode_getGuards (pred)), 
                                          utab->lexlevel);
This page took 0.075045 seconds and 5 git commands to generate.