X-Git-Url: http://andersk.mit.edu/gitweb/splint.git/blobdiff_plain/a8e557d3925057c15b9551be5f9f712fec5f6c90..990ec8680b4718e26f8774a8f2ccff44fb97b3c5:/src/Headers/constraintTerm.h diff --git a/src/Headers/constraintTerm.h b/src/Headers/constraintTerm.h index c171af7..e3c7037 100644 --- a/src/Headers/constraintTerm.h +++ b/src/Headers/constraintTerm.h @@ -4,14 +4,12 @@ typedef union { - exprNode expr; - sRef sref; + /*@exposed@*/ /*@dependent@*/ exprNode expr; + /*@only@*/ sRef sref; int intlit; } constraintTermValue; -void constraintTermValue_copy (/*@out@*/ constraintTermValue src, constraintTermValue dst); - -#define constraintTermValue_copy(dst, src) ((dst) = (src)) +/*@-namechecks@*/ typedef enum { @@ -21,41 +19,24 @@ typedef enum } constraintTermType; struct _constraintTerm { - fileloc loc; + /*@only@*/ fileloc loc; constraintTermValue value; constraintTermType kind; -}; - - -abst_typedef struct _constraintTerm * constraintTerm; - - - -extern /*@falsenull@*/ bool constraintTerm_isDefined (constraintTerm p_e) /*@*/; -extern /*@unused@*/ /*@truenull@*/ bool constraintTerm_isUndefined (constraintTerm p_e) /*@*/ ; -extern /*@truenull@*/ bool constraintTerm_isError (constraintTerm p_e) /*@*/ ; - - -# define constraintTerm_undefined ((constraintTerm)NULL) - -# define constraintTerm_isDefined(e) ((e) != constraintTerm_undefined) -# define constraintTerm_isUndefined(e) ((e) == constraintTerm_undefined) -# define constraintTerm_isError(e) ((e) == constraintTerm_undefined) - +} ; +abst_typedef struct _constraintTerm *constraintTerm; +extern constraintTermType constraintTerm_getKind (constraintTerm) ; +extern /*@exposed@*/ sRef constraintTerm_getSRef (constraintTerm) ; +void constraintTerm_free (/*@only@*/ constraintTerm term); constraintTerm constraintTerm_simplify (/*@returned@*/ constraintTerm term) /*@modifies term@*/ ; -constraintTerm constraintTerm_makeExprNode (/*@only@*/ exprNode e) /*@*/; +/*@only@*/ constraintTerm constraintTerm_makeExprNode (/*@dependent@*/ exprNode e) /*@*/; constraintTerm constraintTerm_copy (constraintTerm term) /*@*/; -constraintTerm exprNode_makeConstraintTerm ( exprNode e) /*@*/; - -bool constraintTerm_same (constraintTerm term1, constraintTerm term2) /*@*/; - bool constraintTerm_similar (constraintTerm term1, constraintTerm term2) /*@*/; bool constraintTerm_canGetValue (constraintTerm term)/*@*/; @@ -63,27 +44,14 @@ int constraintTerm_getValue (constraintTerm term) /*@*/; fileloc constraintTerm_getFileloc (constraintTerm t) /*@*/; -constraintTerm constraintTerm_makeMaxSetexpr (exprNode e) /*@*/; - -constraintTerm constraintTerm_makeMinSetexpr (exprNode e) /*@*/; - -constraintTerm constraintTerm_makeMaxReadexpr (exprNode e) /*@*/; - -constraintTerm constraintTerm_makeMinReadexpr (exprNode e) /*@*/; - -constraintTerm constraintTerm_makeValueexpr (exprNode e) /*@*/; - -constraintTerm intLit_makeConstraintTerm (int i) /*@*/; - -constraintTerm constraintTerm_makeIntLitValue (int i) /*@*/; bool constraintTerm_isIntLiteral (constraintTerm term) /*@*/; cstring constraintTerm_print (constraintTerm term) /*@*/; -constraintTerm constraintTerm_makesRef (/*@only@*/ sRef s) /*@*/; +constraintTerm constraintTerm_makesRef (/*@temp@*/ /*@observer@*/ sRef s) /*@*/; -bool constraintTerm_probSame (constraintTerm term1, constraintTerm term2) /*@*/; +/*@unused@*/ bool constraintTerm_probSame (constraintTerm term1, constraintTerm term2) /*@*/; constraintTerm constraintTerm_setFileloc (/*@returned@*/ constraintTerm term, fileloc loc) /*@modifies term@*/; @@ -93,8 +61,13 @@ bool constraintTerm_isStringLiteral (constraintTerm c) /*@*/; cstring constraintTerm_getStringLiteral (constraintTerm c) /*@*/; -constraintTerm -constraintTerm_doSRefFixBaseParam (constraintTerm term, exprNodeList arglist) /*@modifies term@*/; +constraintTerm constraintTerm_doSRefFixBaseParam (/*@returned@*/ constraintTerm term, exprNodeList arglist) /*@modifies term@*/; + +void constraintTerm_dump ( /*@observer@*/ constraintTerm t, FILE *f); + +/*@only@*/ constraintTerm constraintTerm_undump ( FILE *f); + +/*@=namechecks@*/ #else