]> andersk Git - splint.git/blame - src/Headers/constraintTerm.h
Adding redundantconstraints flags. Set constraintor and showconstraintlocation flags...
[splint.git] / src / Headers / constraintTerm.h
CommitLineData
92c4a786 1#ifndef __constraintTerm_h__
2
3#define __constraintTerm_h__
4
6e88de2d 5typedef union
6{
28bf4b0b 7 /*@exposed@*/ /*@dependent@*/ exprNode expr;
8 /*@only@*/ sRef sref;
b9904f57 9 long intlit;
6e88de2d 10} constraintTermValue;
dc92450f 11
28bf4b0b 12/*@-namechecks@*/
13
6e88de2d 14typedef enum
15{
16 ERRORBADCONSTRAINTTERMTYPE,
17 EXPRNODE, SREF,
18 INTLITERAL
19} constraintTermType;
361091cc 20
6e88de2d 21struct _constraintTerm {
4ab867d6 22 /*@only@*/ fileloc loc;
920a3797 23 constraintTermValue value;
6e88de2d 24 constraintTermType kind;
990ec868 25} ;
92c4a786 26
990ec868 27abst_typedef struct _constraintTerm *constraintTerm;
92c4a786 28
f0171cff 29/*@i311 shouldn't need this...never null */
30extern bool constraintTerm_isDefined (constraintTerm t) /*@*/ ;
31
2934b455 32extern constraintTermType constraintTerm_getKind (constraintTerm) ;
33extern /*@exposed@*/ sRef constraintTerm_getSRef (constraintTerm) ;
92c4a786 34
d46ce6a4 35void constraintTerm_free (/*@only@*/ constraintTerm term);
a8e557d3 36
6e88de2d 37constraintTerm constraintTerm_simplify (/*@returned@*/ constraintTerm term) /*@modifies term@*/ ;
361091cc 38
28bf4b0b 39/*@only@*/ constraintTerm constraintTerm_makeExprNode (/*@dependent@*/ exprNode e) /*@*/;
361091cc 40
6e88de2d 41constraintTerm constraintTerm_copy (constraintTerm term) /*@*/;
361091cc 42
6e88de2d 43bool constraintTerm_similar (constraintTerm term1, constraintTerm term2) /*@*/;
361091cc 44
6e88de2d 45bool constraintTerm_canGetValue (constraintTerm term)/*@*/;
b9904f57 46long constraintTerm_getValue (constraintTerm term) /*@*/;
361091cc 47
6e88de2d 48fileloc constraintTerm_getFileloc (constraintTerm t) /*@*/;
361091cc 49
ef2aa32a 50
6e88de2d 51bool constraintTerm_isIntLiteral (constraintTerm term) /*@*/;
dc92450f 52
6e88de2d 53cstring constraintTerm_print (constraintTerm term) /*@*/;
ef2aa32a 54
28bf4b0b 55constraintTerm constraintTerm_makesRef (/*@temp@*/ /*@observer@*/ sRef s) /*@*/;
ef2aa32a 56
bb25bea6 57/*@unused@*/ bool constraintTerm_probSame (constraintTerm term1, constraintTerm term2) /*@*/;
ef2aa32a 58
6e88de2d 59constraintTerm constraintTerm_setFileloc (/*@returned@*/ constraintTerm term, fileloc loc) /*@modifies term@*/;
92c4a786 60
b9904f57 61constraintTerm constraintTerm_makeIntLiteral (long i) /*@*/;
92c4a786 62
6e88de2d 63bool constraintTerm_isStringLiteral (constraintTerm c) /*@*/;
64cstring constraintTerm_getStringLiteral (constraintTerm c) /*@*/;
92c4a786 65
a8e557d3 66
bb25bea6 67constraintTerm constraintTerm_doSRefFixBaseParam (/*@returned@*/ constraintTerm term, exprNodeList arglist) /*@modifies term@*/;
92c4a786 68
920a3797 69void constraintTerm_dump ( /*@observer@*/ constraintTerm t, FILE *f);
70
71/*@only@*/ constraintTerm constraintTerm_undump ( FILE *f);
72
d30bc0c7 73bool constraintTerm_isInitBlock (/*@observer@*/ /*@temp@*/ constraintTerm p_c) /*@*/;
74
75int constraintTerm_getInitBlockLength (/*@observer@*/ /*@temp@*/ constraintTerm p_c) /*@*/;
76
a779b61e 77bool constraintTerm_isExprNode (/*@observer@*/ /*@temp@*/ constraintTerm c) /*@*/;
78
e5f31c00 79/*@exposed@*/ exprNode constraintTerm_getExprNode (constraintTerm t);
80
81/*@exposed@*/ sRef constraintTerm_getsRef (constraintTerm t);
82
28bf4b0b 83/*@=namechecks@*/
84
6e88de2d 85#else
92c4a786 86
6e88de2d 87#error Multiple Include
361091cc 88
6e88de2d 89#endif
This page took 0.078699 seconds and 5 git commands to generate.