X-Git-Url: http://andersk.mit.edu/gitweb/splint.git/blobdiff_plain/bb25bea60268559306e8a0fc4d44990ba3ebea32..7bf960677344d11a101697c76672a0be4b3759f2:/src/forjunk.c diff --git a/src/forjunk.c b/src/forjunk.c index 62ff3ef..0941da4 100644 --- a/src/forjunk.c +++ b/src/forjunk.c @@ -11,10 +11,8 @@ # 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);