]> andersk Git - splint.git/blame - src/constraintExprData.c
Added check of user specified post conditions.
[splint.git] / src / constraintExprData.c
CommitLineData
3aaedf88 1#/*
a8e557d3 2** constraintExprData.c
3aaedf88 3*/
4
3aaedf88 5# include "lclintMacros.nf"
6# include "basic.h"
7# include "cgrammar.h"
8# include "cgrammar_tokens.h"
9
10# include "exprChecks.h"
11# include "aliasChecks.h"
12# include "exprNodeSList.h"
3aaedf88 13
14
d46ce6a4 15void constraintExprData_freeBinaryExpr (/*@only@*/constraintExprData data)
16{
17 constraintExpr_free (data->binaryOp.expr1);
18 constraintExpr_free (data->binaryOp.expr2);
19 free(data);
20}
21
4ab867d6 22constraintExprData constraintExprData_copyBinaryExpr(/*@observer@*/ constraintExprData data)
c3e695ff 23{
4ab867d6 24 constraintExprData ret;
c3e695ff 25 llassert(constraintExprData_isDefined(data));
26 ret = dmalloc (sizeof (*ret) );
27 ret->binaryOp.binaryOp = data->binaryOp.binaryOp;
28 ret->binaryOp.expr1 = constraintExpr_copy (data->binaryOp.expr1);
29 ret->binaryOp.expr2 = constraintExpr_copy (data->binaryOp.expr2);
30 return ret;
31}
3aaedf88 32
bb25bea6 33 void constraintExprData_freeUnaryExpr (/*@only@*/constraintExprData data)
d46ce6a4 34{
35 constraintExpr_free (data->unaryOp.expr);
36 free(data);
37}
38
4ab867d6 39constraintExprData constraintExprData_copyUnaryExpr(/*@observer@*/ constraintExprData data)
3aaedf88 40{
c3e695ff 41 constraintExprData ret;
42 llassert(constraintExprData_isDefined(data));
3aaedf88 43 ret = dmalloc (sizeof (*ret) );
c3e695ff 44
45 ret->unaryOp.unaryOp = data->unaryOp.unaryOp;
46 ret->unaryOp.expr = constraintExpr_copy (data->unaryOp.expr);
3aaedf88 47
48 return ret;
49}
50
d46ce6a4 51void constraintExprData_freeTerm (/*@only@*/constraintExprData data)
52{
53 constraintTerm_free (data->term);
54 free(data);
55}
56
57
4ab867d6 58constraintExprData constraintExprData_copyTerm (/*@observer@*/ constraintExprData data)
c3e695ff 59{
60 constraintExprData ret;
61 llassert(constraintExprData_isDefined(data));
62 ret = dmalloc (sizeof (*ret) );
63 ret->term = constraintTerm_copy (data->term);
64 return ret;
65}
66
67// constraintExprData constraintExprData_copy (constraintExprData data, constraintExprKind kind)
68// {
69// constraintExprData ret;
70// llassert(constraintExprData_isDefined(data));
71// ret = dmalloc (sizeof (*ret) );
72// switch (kind)
73// {
74// case binaryexpr:
75// ret->binaryOp.binaryOp = data->binaryOp.binaryOp;
76// ret->binaryOp.expr1 = constraintExpr_copy (data->binaryOp.expr1);
77// ret->binaryOp.expr2 = constraintExpr_copy (data->binaryOp.expr2);
78// break;
79// case unaryExpr:
80// ret->unaryOp.unaryOp = data->unaryOp.unaryOp;
81// ret->unaryOp.expr = constraintExpr_copy (data->unaryOp.expr);
82// break;
83// case term:
84// ret->term = constraintTerm_copy (data->term);
85// }
86
87// return ret;
88// }
89
d46ce6a4 90/*@reldef@*/ constraintExprData constraintExprData_termSetTerm (/*@reldef@*/ /*@returned@*/ constraintExprData data, /*@only@*/constraintTerm term)
3aaedf88 91{
a8e557d3 92 /*@-uniondef@*/
c3e695ff 93 llassert (constraintExprData_isDefined(data));
a8e557d3 94 /*@=uniondef@*/
d46ce6a4 95 data->term = term;
3aaedf88 96 return data;
97}
98
99
100
d46ce6a4 101/*@observer@*/ constraintTerm constraintExprData_termGetTerm (/*@observer@*/ constraintExprData data)
3aaedf88 102{
c3e695ff 103 llassert (constraintExprData_isDefined(data));
a8e557d3 104 /*@i22*/return data->term;
3aaedf88 105}
106
107
4ab867d6 108constraintExprUnaryOpKind constraintExprData_unaryExprGetOp (/*@observer@*/ constraintExprData data)
3aaedf88 109{
c3e695ff 110 llassert (constraintExprData_isDefined(data));
3aaedf88 111 return (data->unaryOp.unaryOp);
112}
113
114
4ab867d6 115constraintExpr constraintExprData_unaryExprGetExpr (/*@observer@*/ constraintExprData data)
3aaedf88 116{
c3e695ff 117 llassert (constraintExprData_isDefined(data));
a8e557d3 118 /*@i232*/ return (data->unaryOp.expr);
3aaedf88 119}
120
121
122
84c9ffbf 123 constraintExprData constraintExprData_unaryExprSetOp (/*@reldef@*/ /*@returned@*/ constraintExprData data, constraintExprUnaryOpKind op)
3aaedf88 124{
a8e557d3 125 /*@-uniondef@*/
c3e695ff 126 llassert (constraintExprData_isDefined(data));
a8e557d3 127 /*@=uniondef@*/
128
3aaedf88 129 data->unaryOp.unaryOp = op;
130 return data;
131}
132
d46ce6a4 133constraintExprData constraintExprData_unaryExprSetExpr (constraintExprData data, /*@only@*/ constraintExpr expr)
3aaedf88 134{
c3e695ff 135 llassert (constraintExprData_isDefined(data));
d46ce6a4 136 data->unaryOp.expr = expr;
3aaedf88 137 return data;
138}
139
140// binaryExpr stuff
141
142
143constraintExprBinaryOpKind constraintExprData_binaryExprGetOp (constraintExprData data)
144{
c3e695ff 145 llassert (constraintExprData_isDefined(data));
3aaedf88 146 return (data->binaryOp.binaryOp);
147}
148
149
150constraintExpr constraintExprData_binaryExprGetExpr1 (constraintExprData data)
151{
c3e695ff 152 llassert (constraintExprData_isDefined(data));
a8e557d3 153 /*@i23*/ return (data->binaryOp.expr1);
3aaedf88 154}
155
156
157constraintExpr constraintExprData_binaryExprGetExpr2 (constraintExprData data)
158{
c3e695ff 159 llassert (constraintExprData_isDefined(data));
a8e557d3 160 /*@i22*/ return (data->binaryOp.expr2);
3aaedf88 161}
162
163
d46ce6a4 164constraintExprData constraintExprData_binaryExprSetExpr1 ( /*@reldef@*/ /*@returned@*/ constraintExprData data, /*@only@*/ constraintExpr expr)
3aaedf88 165{
c3e695ff 166 llassert (constraintExprData_isDefined(data));
d46ce6a4 167 data->binaryOp.expr1 = expr;
3aaedf88 168 return data;
169}
170
84c9ffbf 171constraintExprData constraintExprData_binaryExprSetExpr2 (/*@returned@*/ /*@reldef@*/ constraintExprData data, constraintExpr expr)
3aaedf88 172{
c3e695ff 173 llassert (constraintExprData_isDefined(data));
d46ce6a4 174 data->binaryOp.expr2 = expr;
3aaedf88 175 return data;
176}
177
178
84c9ffbf 179constraintExprData constraintExprData_binaryExprSetOp (/*@returned@*/ /*@reldef@*/ constraintExprData data, constraintExprBinaryOpKind op)
3aaedf88 180{
c3e695ff 181 llassert (constraintExprData_isDefined(data));
3aaedf88 182 data->binaryOp.binaryOp = op;
183 return data;
184}
This page took 0.075024 seconds and 5 git commands to generate.