]> andersk Git - splint.git/blob - src/Headers/constraintList.h
819aa7eb656c7d0ed96e7aa6984a7b1c8b46f940
[splint.git] / src / Headers / constraintList.h
1 /*
2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000.
3 ** See ../LICENSE for license information.
4 */
5 # ifndef constraintLIST_H
6 # define constraintLIST_H
7
8 typedef /*@only@*/ /*@notnull@*/ constraint o_constraint;
9
10 struct _constraintList
11 {
12   int nelements;
13   int nspace;
14   /*@reldef@*/ /*@relnull@*/ o_constraint  *elements;
15 } ;
16
17 /*@constant null constraintList constraintList_undefined;@*/
18
19 # define constraintList_undefined ((constraintList)NULL)
20
21 extern /*@falsenull@*/ bool constraintList_isDefined (constraintList p_e) /*@*/ ;
22 extern /*@unused@*/ /*@truenull@*/ bool constraintList_isUndefined (constraintList p_e) /*@*/ ;
23 extern /*@truenull@*/ /*@unused@*/ bool constraintList_isError (constraintList p_e) /*@*/ ;
24
25 # define constraintList_isDefined(e)    ((e) != constraintList_undefined)
26 # define constraintList_isUndefined(e)  ((e) == constraintList_undefined)
27 # define constraintList_isError(e)      ((e) == constraintList_undefined)
28
29
30
31 /*@iter constraintList_elements (sef constraintList x, yield exposed constraint el); @*/
32 # define constraintList_elements(x, m_el) \
33    { int m_ind; constraint *m_elements = &((x)->elements[0]); \
34      for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \
35        { constraint m_el = *(m_elements++); 
36
37 # define end_constraintList_elements }}
38
39 extern /*@only@*/ constraintList constraintList_makeNew(void) /*@*/;
40 extern constraintList constraintList_add (/*@returned@*/ constraintList p_s, /*@only@*/ constraint p_el) /*@modifies p_s@*/ ;
41
42 extern constraintList constraintList_addList (/*@returned@*/ constraintList p_s, /*@only@*/constraintList new) /*@modifies p_s@*/  ;
43
44
45 extern constraintList constraintList_copy ( /*@observer@*/ constraintList p_s) /*@*/ ;
46
47 //extern /*@only@*/ cstring constraintList_unparse ( /*@observer@*/ constraintList p_s) ;
48 extern void constraintList_free (/*@only@*/ constraintList p_s) ;
49
50
51
52
53 extern cstring constraintList_print ( /*@observer@*/ constraintList s) /*@*/;
54
55 extern cstring
56 constraintList_printDetailed ( /*@observer@*/ constraintList s) /*@*/;
57
58
59 extern /*@only@*/ constraintList
60 constraintList_logicalOr ( /*@observer@*/ constraintList l1, /*@observer@*/  constraintList l2);
61
62 extern constraintList constraintList_preserveOrig (/*@returned@*/ constraintList c);
63
64 /*@constant int constraintListBASESIZE;@*/
65
66 # define constraintListBASESIZE SMALLBASESIZE
67
68
69 extern  /*@only@*/ constraintList constraintList_doSRefFixBaseParam (constraintList preconditions, exprNodeList arglist) /*@modifies preconditions@*/;
70
71 extern constraintList constraintList_togglePost (/*@returned@*/ constraintList c) /*@modifies c@*/;
72
73 extern  /*@only@*/ constraintList constraintList_doSRefFixConstraintParam ( /*@only@*/ constraintList preconditions, exprNodeList arglist) /*@modifies preconditions@*/;
74
75 extern constraintList getPostConditions (exprNode fcn, exprNodeList arglist, exprNode fcnCall) /*@*/;
76
77 /*@only@*/ constraintList constraintList_doFixResult ( /*@only@*/ constraintList postconditions, exprNode fcnCall) /*@modifies postconditions@*/;
78
79 constraintList constraintList_addGeneratingExpr (/*@returned@*/ constraintList c, exprNode e) /*@modifies c@*/;
80
81 # else
82 # error "Multiple include"
83 # endif
84
85
86
87
This page took 0.076157 seconds and 3 git commands to generate.