]> andersk Git - splint.git/blobdiff - src/Headers/constraintList.h
Fixed library dump support so that buffer constraint annotations are read and written...
[splint.git] / src / Headers / constraintList.h
index c4740c8e658be35dae8d7ee91417d241cbeab8d2..bd0a326feb326f98291c0cc2a245fb798a4d831f 100644 (file)
@@ -5,14 +5,29 @@
 # ifndef constraintLIST_H
 # define constraintLIST_H
 
-typedef /*@only@*/ constraint o_constraint;
+typedef /*@only@*/ /*@notnull@*/ constraint o_constraint;
 
-abst_typedef struct _constraintList
+struct _constraintList
 {
   int nelements;
   int nspace;
   /*@reldef@*/ /*@relnull@*/ o_constraint  *elements;
-} *constraintList;
+} ;
+
+/*@constant null constraintList constraintList_undefined;@*/
+
+# 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) /*@*/ ;
+
+# define constraintList_isDefined(e)    ((e) != constraintList_undefined)
+# define constraintList_isUndefined(e)  ((e) == constraintList_undefined)
+# define constraintList_isError(e)      ((e) == constraintList_undefined)
+
+extern /*@only@*/ constraintList constraintList_addListFree (/*@only@*/ constraintList, /*@only@*/ constraintList) ;
+extern constraintList constraintList_preserveCallInfo (/*@returned@*/ constraintList p_c, exprNode p_fcn) ;
 
 /*@iter constraintList_elements (sef constraintList x, yield exposed constraint el); @*/
 # define constraintList_elements(x, m_el) \
@@ -22,24 +37,54 @@ abst_typedef struct _constraintList
 
 # define end_constraintList_elements }}
 
-extern /*@only@*/ constraintList constraintList_new(void);
-extern constraintList constraintList_add (/*@returned@*/ constraintList p_s, /*@only@*/ constraint p_el) ;
+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 s, /*@only@*/constraintList new);
+extern /*@only@*/ constraintList constraintList_addList (/*@returned@*/ constraintList p_s, /*@observer@*/ constraintList new) /*@modifies p_s@*/  ;
 
 
-extern constraintList constraintList_copy (constraintList p_s);
+extern constraintList constraintList_copy ( /*@observer@*/ constraintList p_s) /*@*/ ;
+
 
-//extern /*@only@*/ cstring constraintList_unparse (constraintList p_s) ;
 extern void constraintList_free (/*@only@*/ constraintList p_s) ;
 
 
-extern constraintList constraintList_copy (constraintList s);
+extern /*@only@*/ cstring constraintList_unparse ( /*@observer@*/ constraintList p_s) /*@*/;
+
+/*@only@*/ extern cstring constraintList_print ( /*@observer@*/ constraintList s) /*@*/;
+
+extern cstring
+constraintList_printDetailed ( /*@observer@*/ constraintList s) /*@*/;
+
+extern /*@only@*/ constraintList
+constraintList_logicalOr ( /*@observer@*/ constraintList l1, /*@observer@*/  constraintList l2);
+
+extern constraintList constraintList_preserveOrig (/*@returned@*/ constraintList c);
 
-extern cstring constraintList_print (constraintList s);
 /*@constant int constraintListBASESIZE;@*/
+
 # define constraintListBASESIZE SMALLBASESIZE
 
+extern  /*@only@*/ constraintList constraintList_doSRefFixBaseParam ( /*@observer@*/ constraintList preconditions, /*@observer@*/ exprNodeList arglist) /*@modifies preconditions@*/;
+
+extern constraintList constraintList_togglePost (/*@returned@*/ constraintList c) /*@modifies c@*/;
+
+extern  /*@only@*/ constraintList constraintList_doSRefFixConstraintParam ( /*@only@*/ constraintList preconditions, /*@observer@*/ exprNodeList arglist) /*@modifies preconditions@*/;
+
+extern constraintList getPostConditions (exprNode fcn, exprNodeList arglist, exprNode fcnCall) /*@*/;
+
+/*@only@*/ constraintList constraintList_doFixResult ( /*@only@*/ constraintList postconditions, /*@observer@*/ exprNode fcnCall) /*@modifies postconditions@*/;
+
+extern constraintList constraintList_addGeneratingExpr (/*@returned@*/ constraintList c, exprNode e) /*@modifies 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, fileloc p_loc) ;
+
+void constraintList_dump (/*@observer@*/ constraintList c,  FILE *f);
+
+/*@only@*/ constraintList constraintList_undump (FILE *f);
+
+
 # else
 # error "Multiple include"
 # endif
This page took 0.038132 seconds and 4 git commands to generate.