]> andersk Git - splint.git/blobdiff - src/forjunk.c
*** empty log message ***
[splint.git] / src / forjunk.c
index 62ff3ef61ea003603c91e80d7c08c06d13e29d1c..0941da45be04150b1dfe41a9ead21449c26a81e0 100644 (file)
 # include "cgrammar_tokens.h"
 
 # include "exprChecks.h"
-# include "aliasChecks.h"
 # include "exprNodeSList.h"
 
-# include "exprData.i"
 # include "exprDataQuite.i"
 
 /*@access constraint, exprNode @*/
@@ -178,6 +176,8 @@ static /*@only@*/ constraintList getIncConstraints (/*@observer@*/ constraintLis
   ret = constraintList_makeNew();
   constraintList_elements (c, el)
     {
+      llassert (constraint_isDefined (el));
+
       if (incVar (el) )
        {
          constraint temp;
@@ -286,21 +286,20 @@ static /*@only@*/ constraintExpr constraintExpr_searchAndAdd (/*@only@*/ constra
   
   if ( constraintExpr_similar (c, find) )
     {
-      #warning mem leak
 
-      constraintExpr new;
+      constraintExpr newExpr;
       
       cstring cPrint;
       
       cPrint = constraintExpr_unparse(c);
       
       
-      new = constraintExpr_makeAddConstraintExpr (c, constraintExpr_copy(add) );
+      newExpr = constraintExpr_makeAddExpr (c, constraintExpr_copy(add) );
 
       DPRINTF((message ("Replacing %q with %q",
-                       cPrint, constraintExpr_unparse(new)
+                       cPrint, constraintExpr_unparse(newExpr)
                        )));
-      return new;
+      return newExpr;
     }
 
   kind = c->kind;
@@ -350,7 +349,7 @@ static constraint  constraint_searchAndAdd (/*@returned@*/ constraint c, /*@obse
   
 }
 
-static constraintList constraintList_searchAndAdd (/*@returned@*/ constraintList list,
+ static constraintList constraintList_searchAndAdd (/*@returned@*/ constraintList list,
                                                   /*@observer@*/ constraintExpr find, /*@observer@*/ constraintExpr add)
 {
   constraintList newConstraints;
@@ -362,18 +361,18 @@ static constraintList constraintList_searchAndAdd (/*@returned@*/ constraintList
     {
       if (constraint_search (el, find) )
        {
-         constraint new;
-         new = constraint_copy (el);
+         constraint newExpr;
+         newExpr = constraint_copy (el);
 
-         new = constraint_searchAndAdd (new, find, add);
-                 DPRINTF (( (message ("Adding constraint %s ", constraint_print (new)) )  ));
-         newConstraints = constraintList_add (newConstraints, new);
+         newExpr = constraint_searchAndAdd (newExpr, find, add);
+                 DPRINTF (( (message ("Adding constraint %s ", constraint_print (newExpr)) )  ));
+         newConstraints = constraintList_add (newConstraints, newExpr);
        }
 
     }
   end_constraintList_elements;
   
-  ret =  constraintList_addList (list, newConstraints);
+  ret =  constraintList_addListFree (list, newConstraints);
   return ret;
 }
 
@@ -392,7 +391,7 @@ static void doAdjust(/*@unused@*/ exprNode e, /*@unused@*/ exprNode forPred, /*@
   end_constraintList_elements;
 }
 
-void forLoopHeuristics( exprNode e, exprNode forPred, exprNode forBody)
+void exprNode_forLoopHeuristics( exprNode e, exprNode forPred, exprNode forBody)
 {
   exprNode init, test, inc;
 
@@ -407,7 +406,7 @@ void forLoopHeuristics( exprNode e, exprNode forPred, exprNode forBody)
   
   iterations = getForTimes (forPred, forBody );
 
-  if (iterations)
+  if (constraintExpr_isDefined (iterations) )
     {
       doAdjust ( e, forPred, forBody, iterations);
       constraintExpr_free(iterations);
This page took 0.048813 seconds and 4 git commands to generate.