]> andersk Git - splint.git/blame_incremental - src/Headers/constraint.h
Prewinter break editing commit.
[splint.git] / src / Headers / constraint.h
... / ...
CommitLineData
1#ifndef __constraint_h__
2
3#define __constraint_h__
4
5typedef enum
6{
7 LT, LTE, GT, GTE, EQ, NONNEGATIVE, POSITIVE
8}
9arithType;
10
11//abst_typedef struct constr_ * constr;
12
13
14struct _constraint {
15 constraint orig;
16 constraintExpr lexpr;
17 arithType ar;
18 constraintExpr expr;
19 bool post;
20} ;
21
22abst_typedef struct _constraintTerm * constraintTerm;
23
24//constraint constraint_create (exprNode e1, exprNode e2, arithType restriction, constraintType kind);
25
26
27constraint makeConstraintParse (sRef x, lltok relOp, exprNode cconstant);
28
29
30constraint constraint_createReadSafe (exprNode p_e1, exprNode p_e2);
31
32constraint constraint_makeInc_Op (exprNode p_e1);
33
34/*@i22*/
35/*@-czechfcns*/
36bool constraint_resolve (/*@unused@*/ constraint c);
37
38/*@out@*/ constraintTerm new_constraintTermExpr (void);
39constraintTerm exprNode_makeConstraintTerm (/*@only@*/ exprNode e);
40
41constraintTerm intLit_makeConstraintTerm (int p_i);
42
43/*@special@*/ constraintExpr makeConstraintExpr (/*@only@*/ /*@notnull@*/ constraintTerm term)
44 /*@post:isnull result->expr@*/
45 /*@post:notnull result->t1@*/
46 /*@defines result->expr, result->t1, result->c1@, result->op*/;
47
48constraintExpr makeConstraintExprIntlit (int p_i);
49
50/*@relnull@*/ constraint constraint_makeReadSafeExprNode ( exprNode p_po, exprNode p_ind);
51
52constraint constraint_makeWriteSafeExprNode (exprNode p_po, exprNode p_ind);
53
54constraint constraint_makeReadSafeInt (exprNode p_t1, int p_index);
55
56constraint constraint_makeEnsureMaxReadAtLeast (exprNode p_t1, exprNode p_t2, fileloc p_sequencePoint);
57
58constraint constraint_makeEnsureMinReadAtMost (exprNode po, exprNode ind, fileloc sequencePoint);
59
60constraint constraint_makeSideEffectPostIncrement (exprNode t1, fileloc p_sequencePoint);
61void constraint_overWrite (constraint c1, constraint c2);
62constraint constraint_copy (constraint c);
63
64constraintExpr makePostOpInc (exprNode t1);
65
66
67bool fileloc_closer (fileloc loc1, fileloc loc2, fileloc loc3);
68cstring constraintTerm_print (constraintTerm term) /*@*/;
69
70cstring arithType_print (arithType ar) /*@*/;
71
72cstring constraintExpr_print (constraintExpr ex) /*@*/;
73fileloc constraint_getFileloc (constraint c);
74cstring constraint_print (constraint c) /*@*/;
75constraint constraint_makeWriteSafeInt (exprNode po, int ind);
76
77exprNode exprNode_copyConstraints (exprNode dst, exprNode src);
78
79constraint constraint_makeEnsureEqual (exprNode e1, exprNode e2, fileloc sequencePoint);
80
81constraint constraint_makeMaxSetSideEffectPostIncrement (exprNode e, fileloc sequencePoint);
82
83constraint constraint_preserveOrig (constraint c);
84constraint constraint_doSRefFixBaseParam (constraint precondition,
85 exprNodeList arglist);
86
87cstring constraint_printDetailed (constraint c);
88
89constraint constraint_makeEnsureLessThan (exprNode e1, exprNode e2, fileloc sequencePoint);
90
91constraint constraint_makeEnsureLessThanEqual (exprNode e1, exprNode e2, fileloc sequencePoint);
92constraint constraint_makeEnsureGreaterThan (exprNode e1, exprNode e2, fileloc sequencePoint);
93constraint constraint_makeEnsureGreaterThanEqual (exprNode e1, exprNode e2, fileloc sequencePoint);
94
95/*drl add 11/28/2000 */
96constraint constraint_makeSRefWriteSafeInt (sRef s, int ind);
97
98/*@=czechfcns*/
99#warning take this out
100#include "constraintList.h"
101
102#include "constraintExpr.h"
103#include "constraintTerm.h"
104#include "constraintResolve.h"
105#endif
106
This page took 0.031408 seconds and 5 git commands to generate.