]> andersk Git - splint.git/blobdiff - src/Headers/constraintList.h
Changes to fix malloc size problem.
[splint.git] / src / Headers / constraintList.h
index 23aba2ea5fbe3b8c83f322927d638d3eacac9e53..c9f455c0958a8cd637a32c9193bb157b4659c90a 100644 (file)
@@ -7,7 +7,7 @@
 
 typedef /*@only@*/ /*@notnull@*/ constraint o_constraint;
 
-struct _constraintList
+struct s_constraintList
 {
   int nelements;
   int nspace;
@@ -18,65 +18,85 @@ struct _constraintList
 
 # define constraintList_undefined ((constraintList)NULL)
 
-extern /*@falsenull@*/ bool constraintList_isDefined (constraintList p_e) /*@*/ ;
-extern /*@unused@*/ /*@truenull@*/ bool constraintList_isUndefined (constraintList p_e) /*@*/ ;
-extern /*@truenull@*/ /*@unused@*/ bool constraintList_isError (constraintList p_e) /*@*/ ;
+extern /*@falsewhennull@*/ bool constraintList_isDefined (constraintList p_e) /*@*/ ;
+extern /*@unused@*/ /*@nullwhentrue@*/ bool constraintList_isUndefined (constraintList p_e) /*@*/ ;
+extern /*@nullwhentrue@*/ /*@unused@*/ bool constraintList_isError (constraintList p_e) /*@*/ ;
 
 # define constraintList_isDefined(e)    ((e) != constraintList_undefined)
 # define constraintList_isUndefined(e)  ((e) == constraintList_undefined)
 # define constraintList_isError(e)      ((e) == constraintList_undefined)
 
+extern bool constraintList_isEmpty (/*@sef@*/ constraintList p_e) /*@*/;
 
+# define constraintList_isEmpty(e)      ((constraintList_isUndefined((e)) ) ||(( (e)->nelements == 0) ) )
+
+extern constraintList constraintList_single (/*@only@*/ constraint) ;
+
+extern constraintList constraintList_addListFree (/*@returned@*/ constraintList, /*@only@*/ constraintList) ;
+extern constraintList constraintList_preserveCallInfo (/*@returned@*/ constraintList p_c, /*@observer@*/ /*@dependent@*/ exprNode p_fcn) ;
 
 /*@iter constraintList_elements (sef constraintList x, yield exposed constraint el); @*/
 # define constraintList_elements(x, m_el) \
-   { int m_ind; constraint *m_elements = &((x)->elements[0]); \
+   { if (constraintList_isDefined (x)) { int m_ind; constraint *m_elements = &((x)->elements[0]); \
      for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \
        { constraint m_el = *(m_elements++); 
 
-# define end_constraintList_elements }}
+# define end_constraintList_elements }}}
 
 extern /*@only@*/ constraintList constraintList_makeNew(void) /*@*/;
 extern constraintList constraintList_add (/*@returned@*/ constraintList p_s, /*@only@*/ constraint p_el) /*@modifies p_s@*/ ;
 
-extern constraintList constraintList_addList (/*@returned@*/ constraintList p_s, /*@only@*/constraintList new) /*@modifies p_s@*/  ;
-
+     extern /*@only@*/ constraintList constraintList_addList (/*@only@*/ /*@returned@*/ constraintList p_s, /*@observer@*/ /*@temp@*/ constraintList p_newList) /*@modifies p_s@*/  ;
 
-extern constraintList constraintList_copy ( /*@observer@*/ constraintList p_s) /*@*/ ;
-
-//extern /*@only@*/ cstring constraintList_unparse ( /*@observer@*/ constraintList p_s) ;
-extern void constraintList_free (/*@only@*/ constraintList p_s) ;
 
+extern constraintList constraintList_copy ( /*@observer@*/ /*@temp@*/ constraintList p_s) /*@*/ ;
 
 
+extern void constraintList_free (/*@only@*/ constraintList p_s) ;
 
-extern cstring constraintList_print ( /*@observer@*/ constraintList s) /*@*/;
 
-extern cstring
-constraintList_printDetailed ( /*@observer@*/ constraintList s) /*@*/;
+extern /*@only@*/ cstring constraintList_unparse (/*@observer@*/ constraintList p_s) /*@*/;
 
+extern cstring constraintList_unparseDetailed (/*@observer@*/ constraintList p_s) /*@*/;
 
 extern /*@only@*/ constraintList
-constraintList_logicalOr ( /*@observer@*/ constraintList l1, /*@observer@*/  constraintList l2);
+constraintList_logicalOr ( /*@observer@*/ constraintList p_l1, /*@observer@*/  constraintList p_l2);
 
-extern constraintList constraintList_preserveOrig (/*@returned@*/ constraintList c);
+extern constraintList constraintList_preserveOrig (/*@returned@*/ constraintList p_c);
 
 /*@constant int constraintListBASESIZE;@*/
 
 # define constraintListBASESIZE SMALLBASESIZE
 
+extern  /*@only@*/ constraintList constraintList_doSRefFixBaseParam ( constraintList p_preconditions, /*@temp@*/ /*@observer@*/ exprNodeList p_arglist) /*@modifies p_preconditions@*/;
+
+extern constraintList constraintList_togglePost (/*@returned@*/ constraintList p_c) /*@modifies p_c@*/;
+
+extern  /*@only@*/ constraintList constraintList_doSRefFixConstraintParam ( /*@only@*/ constraintList p_preconditions, /*@observer@*/ /*@temp@*/ exprNodeList p_arglist) /*@modifies p_preconditions@*/;
+
+extern constraintList exprNode_getPostConditions (/*@dependent@*/ /*@observer@*/ exprNode p_fcn, exprNodeList p_arglist, /*@dependent@*/ /*@observer@*/ exprNode p_fcnCall) /*@*/;
+
+/*@only@*/ constraintList constraintList_doFixResult ( /*@only@*/ constraintList p_postconditions, /*@observer@*/ /*@dependent@*/ exprNode p_fcnCall) /*@modifies p_postconditions@*/;
 
-/*@unused@*/ extern  /*@only@*/ constraintList constraintList_doSRefFixBaseParam (constraintList preconditions, exprNodeList arglist) /*@modifies preconditions@*/;
+extern constraintList constraintList_addGeneratingExpr (/*@returned@*/ constraintList p_c, /*@dependent@*/ /*@observer@*/ exprNode p_e) /*@modifies p_c@*/;
+extern /*@only@*/ constraintList constraintList_makeFixedArrayConstraints ( /*@observer@*/ sRefSet p_s) ;
+extern void constraintList_printErrorPostConditions (constraintList p_s, fileloc p_loc) ;
+extern void constraintList_printError (constraintList p_s, /*@observer@*/ fileloc p_loc) ;
 
-extern constraintList constraintList_togglePost (/*@returned@*/ constraintList c) /*@modifies c@*/;
+extern constraintList constraintList_sort (/*@returned@*/ constraintList p_ret)
+   /*@modifies p_ret@*/ ;
 
-extern  /*@only@*/ constraintList constraintList_doSRefFixConstraintParam ( /*@only@*/ constraintList preconditions, exprNodeList arglist) /*@modifies preconditions@*/;
+extern void constraintList_castConstraints (constraintList p_c, ctype p_tfrom, ctype p_tto) 
+   /*@modifies p_c@*/ ;
 
-extern constraintList getPostConditions (exprNode fcn, exprNodeList arglist, exprNode fcnCall) /*@*/;
+extern void constraintList_dump (/*@observer@*/ constraintList p_c,  FILE * p_f);
 
-/*@only@*/ constraintList constraintList_doFixResult ( /*@only@*/ constraintList postconditions, exprNode fcnCall) /*@modifies postconditions@*/;
+/*@only@*/ constraintList constraintList_undump (FILE * p_f);
+/*@only@*/ constraintList constraintList_removeSurpressed (/*@only@*/ constraintList p_s);
 
-constraintList constraintList_addGeneratingExpr (/*@returned@*/ constraintList c, exprNode e) /*@modifies c@*/;
+/*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 */
+/* / *@only@* / constraintList constraintList_doSRefFixStructConstraint(constraintList p_invars, sRef p_s, ctype p_ct ); */
 
 # else
 # error "Multiple include"
This page took 0.433567 seconds and 4 git commands to generate.