]> andersk Git - splint.git/blob - src/Headers/constraintList.h
5f42e205520df3e7f8b74c130099e0b20986691e
[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@*/ 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 # define constraintList_undefined ((constraintList) 0)
19
20 /*@iter constraintList_elements (sef constraintList x, yield exposed constraint el); @*/
21 # define constraintList_elements(x, m_el) \
22    { int m_ind; constraint *m_elements = &((x)->elements[0]); \
23      for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \
24        { constraint m_el = *(m_elements++); 
25
26 # define end_constraintList_elements }}
27
28 extern /*@only@*/ constraintList constraintList_makeNew(void) /*@*/;
29 extern constraintList constraintList_add (/*@returned@*/ constraintList p_s, /*@only@*/ constraint p_el) /*@modifies p_s@*/ ;
30
31 extern constraintList constraintList_addList (/*@returned@*/ constraintList p_s, /*@only@*/constraintList new) /*@modifies p_s@*/  ;
32
33
34 extern constraintList constraintList_copy (constraintList p_s) /*@*/ ;
35
36 //extern /*@only@*/ cstring constraintList_unparse (constraintList p_s) ;
37 extern void constraintList_free (/*@only@*/ constraintList p_s) ;
38
39
40
41
42 extern cstring constraintList_print (constraintList s) /*@*/;
43
44 extern cstring
45 constraintList_printDetailed (constraintList s) /*@*/;
46
47
48 extern constraintList
49 constraintList_logicalOr (constraintList l1, constraintList l2);
50
51 extern constraintList constraintList_preserveOrig (/*@returned@*/ constraintList c);
52
53 /*@constant int constraintListBASESIZE;@*/
54
55 extern constraintList constraintList_doSRefFixBaseParam (constraintList preconditions, exprNodeList arglist) /*@modifies preconditions@*/;
56
57 extern constraintList constraintList_togglePost (/*@returned@*/ constraintList c) /*@modifies c@*/;
58
59 extern constraintList constraintList_doSRefFixConstraintParam (/*@returned@*/ constraintList preconditions, exprNodeList arglist) /*@modifies preconditions@*/;
60
61 extern constraintList getPostConditions (exprNode fcn, exprNodeList arglist, exprNode fcnCall) /*@*/;
62
63 constraintList constraintList_doFixResult (/*@returned@*/ constraintList postconditions, exprNode fcnCall) /*@modifies postconditions@*/;
64
65 constraintList constraintList_addGeneratingExpr (/*@returned@*/ constraintList c, exprNode e) /*@modifies c@*/;
66 # define constraintListBASESIZE SMALLBASESIZE
67
68 # else
69 # error "Multiple include"
70 # endif
71
72
73
74
This page took 0.132644 seconds and 3 git commands to generate.