X-Git-Url: http://andersk.mit.edu/gitweb/splint.git/blobdiff_plain/abd7f89523564e5e238e5852585b98f72c3b48f4..a9ec328054b628447830161535f4915f715f49cd:/src/Headers/constraint.h diff --git a/src/Headers/constraint.h b/src/Headers/constraint.h index 173bf57..57676f4 100644 --- a/src/Headers/constraint.h +++ b/src/Headers/constraint.h @@ -4,17 +4,17 @@ typedef enum { - LT, LTE, GT, GTE, EQ, NONNEGATIVE, POSITIVE + LT, LTE, GT, GTE, EQ, NONNEGATIVE, POSITIVE, } arithType; struct s_constraint { - constraint orig; - constraint or; - bool fcnPre; + arithType ar; + constraint orig; + constraint or; + bool fcnPre; constraintExpr lexpr; - arithType ar; - constraintExpr expr; + constraintExpr expr; bool post; /*@exposed@*/ /*@dependent@*/ exprNode generatingExpr; } ; @@ -35,7 +35,6 @@ extern void constraint_free (/*@only@*/ constraint p_c); /* constraint makeConstraintParse (sRef x, lltok relOp, exprNode cconstant); */ -/*@i22*/ /*@-czechfcns*/ extern constraint @@ -64,12 +63,12 @@ extern /*@only@*/ cstring arithType_print (arithType p_ar) /*@*/; extern /*@only@*/ fileloc constraint_getFileloc (constraint p_c); -extern /*@only@*/ cstring constraint_unparse (/*@temp@*/ /*@observer@*/ constraint p_c) /*@*/; -# define constraint_unparse constraint_print +extern /*@only@*/ cstring constraint_unparse (/*@temp@*/ constraint p_c) /*@*/; +extern /*@only@*/ cstring constraint_unparseOr (/*@temp@*/ constraint p_c) /*@*/ ; +extern /*@only@*/ cstring constraint_unparseDetailed (constraint p_c) /*@*/ ; -extern /*@only@*/ cstring constraint_print (/*@temp@*/ /*@observer@*/ constraint p_c) /*@*/; - -extern /*@only@*/ constraint constraint_makeWriteSafeInt (/*@dependent@*/ /*@observer@*/ exprNode p_po, int p_ind); +extern /*@only@*/ constraint +constraint_makeWriteSafeInt (/*@dependent@*/ /*@observer@*/ exprNode p_po, int p_ind); extern exprNode exprNode_copyConstraints (/*@returned@*/ exprNode p_dst, exprNode p_src) /*@modifies p_dst @*/; @@ -80,8 +79,6 @@ extern /*@only@*/ constraint constraint_makeMaxSetSideEffectPostIncrement (/*@de extern constraint constraint_preserveOrig (/*@returned@*/ constraint p_c) /*@modifies p_c @*/; extern /*@only@*/ constraint constraint_doSRefFixBaseParam (/*@returned@*/ /*@only@*/ constraint p_precondition, exprNodeList p_arglist); -extern /*@only@*/ cstring constraint_printDetailed (constraint p_c); - extern /*@only@*/ constraint constraint_makeEnsureLessThan (/*@dependent@*/ /*@observer@*/ exprNode p_e1, /*@dependent@*/ /*@observer@*/ exprNode p_e2, fileloc p_sequencePoint); extern /*@only@*/ constraint constraint_makeEnsureLessThanEqual (/*@dependent@*/ /*@observer@*/ exprNode p_e1, /*@dependent@*/ /*@observer@*/ exprNode p_e2, fileloc p_sequencePoint); @@ -117,15 +114,13 @@ extern bool constraint_hasMaxSet(constraint p_c); extern void exprNode_exprTraverse (exprNode p_e, bool p_definatelv, bool p_definaterv, /*@temp@*/ /*@observer@*/ fileloc p_sequencePoint); extern /*@only@*/ constraintList -exprNode_traversRequiresConstraints (exprNode p_e); +exprNode_traverseRequiresConstraints (exprNode p_e); extern /*@only@*/ constraintList -exprNode_traversEnsuresConstraints (exprNode p_e); +exprNode_traverseEnsuresConstraints (exprNode p_e); extern constraint constraint_togglePost (/*@returned@*/ constraint p_c); extern bool constraint_same (constraint p_c1, constraint p_c2) ; - -/*@only@*/ cstring constraint_printOr (constraint p_c) /*@*/; extern void constraint_printErrorPostCondition (constraint p_c, fileloc p_loc) ; extern cstring constraint_printLocation (/*@observer@*/ /*@temp@*/ constraint p_c) /*@*/; /*drl add 8-11-001*/ @@ -133,7 +128,7 @@ extern cstring constraint_printLocation (/*@observer@*/ /*@temp@*/ constraint p_ extern constraint constraint_setFcnPre (/*@returned@*/ constraint p_c) ; extern constraint constraint_origAddGeneratingExpr (/*@returned@*/ constraint p_c, /*@dependent@*/ /*@observer@*/ exprNode p_e) ; -extern bool /*@alt void@*/ exprNode_generateConstraints (/*@dependent@*/ exprNode p_e) ; +extern bool /*@alt void@*/ exprNode_generateConstraints (/*@temp@*/ exprNode p_e) ; constraint constraint_togglePostOrig (/*@returned@*/ constraint p_c); bool constraint_hasOrig( /*@observer@*/ /*@temp@*/ constraint p_c); @@ -159,7 +154,9 @@ void exprNode_findValue( exprNode p_e); /*drl 1/6/2001: I didn't think these functions were solid enough to include in the stable release of splint.*/ /*drl added 12/30/01 */ /* extern / *@only@* / constraint constraint_doSRefFixInvarConstraint(constraint p_invar, sRef p_s, ctype p_ct ); */ - + +/*drl added 12/19 */ +bool constraint_isConstantOnly (constraint p_c); /*@=czechfcns*/ /* drl possible problem : warning take this out */