Various minor fixes for compiler/linter (other then splint itself) warnings.
[splint-patched.git] / src / constraintExprData.c
blobb31e0c09c5eebc0c1f5c80bcb9e3a55b1fca6c28
1 /*
2 ** Splint - annotation-assisted static program checker
3 ** Copyright (C) 1994-2003 University of Virginia,
4 ** Massachusetts Institute of Technology
5 **
6 ** This program is free software; you can redistribute it and/or modify it
7 ** under the terms of the GNU General Public License as published by the
8 ** Free Software Foundation; either version 2 of the License, or (at your
9 ** option) any later version.
10 **
11 ** This program is distributed in the hope that it will be useful, but
12 ** WITHOUT ANY WARRANTY; without even the implied warranty of
13 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 ** General Public License for more details.
15 **
16 ** The GNU General Public License is available from http://www.gnu.org/ or
17 ** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
18 ** MA 02111-1307, USA.
20 ** For information on splint: info@splint.org
21 ** To report a bug: splint-bug@splint.org
22 ** For more information: http://www.splint.org
26 ** constraintExprData.c
29 # include "splintMacros.nf"
30 # include "basic.h"
32 static /*@out@*/ constraintExprData constraintExprData_alloc (void)
34 constraintExprData ret;
36 ret = dmalloc (sizeof (*ret) );
38 return ret;
41 static /*@out@*/ constraintExprData constraintExprData_allocBinaryOp (void)
43 constraintExprData ret;
45 ret = constraintExprData_alloc();
47 ret->binaryOp.expr1 = constraintExpr_undefined;
48 ret->binaryOp.expr2 = constraintExpr_undefined;
50 return ret;
53 static /*@out@*/ constraintExprData constraintExprData_allocUnaryOp (void)
55 constraintExprData ret;
57 ret = constraintExprData_alloc();
59 ret->unaryOp.expr = constraintExpr_undefined;
61 return ret;
64 static /*@out@*/ constraintExprData constraintExprData_allocTerm (void)
66 constraintExprData ret;
68 ret = constraintExprData_alloc();
70 ret->term = NULL;
71 return ret;
75 void constraintExprData_freeBinaryExpr (/*@only@*/constraintExprData data)
77 constraintExpr_free (data->binaryOp.expr1);
78 constraintExpr_free (data->binaryOp.expr2);
79 free(data);
82 constraintExprData constraintExprData_copyBinaryExpr(/*@observer@*/ constraintExprData data)
84 constraintExprData ret;
85 llassert(constraintExprData_isDefined(data));
87 ret = constraintExprData_allocBinaryOp();
89 ret->binaryOp.binaryOp = data->binaryOp.binaryOp;
90 ret->binaryOp.expr1 = constraintExpr_copy (data->binaryOp.expr1);
91 ret->binaryOp.expr2 = constraintExpr_copy (data->binaryOp.expr2);
92 return ret;
95 void constraintExprData_freeUnaryExpr (/*@only@*/constraintExprData data)
97 constraintExpr_free (data->unaryOp.expr);
98 free(data);
101 constraintExprData constraintExprData_copyUnaryExpr(/*@observer@*/ constraintExprData data)
103 constraintExprData ret;
104 llassert(constraintExprData_isDefined(data));
106 ret = constraintExprData_allocUnaryOp();
108 ret->unaryOp.unaryOp = data->unaryOp.unaryOp;
109 ret->unaryOp.expr = constraintExpr_copy (data->unaryOp.expr);
111 return ret;
114 void constraintExprData_freeTerm (/*@only@*/constraintExprData data)
116 constraintTerm_free (data->term);
117 free(data);
121 constraintExprData constraintExprData_copyTerm (/*@observer@*/ constraintExprData data)
123 constraintExprData ret;
124 llassert(constraintExprData_isDefined(data));
126 ret = constraintExprData_allocTerm();
128 ret->term = constraintTerm_copy (data->term);
129 return ret;
132 constraintExprData
133 constraintExprData_termSetTerm (/*@returned@*/ constraintExprData data,
134 /*@only@*/ constraintTerm term)
136 llassert (constraintExprData_isDefined (data));
138 if (constraintTerm_isDefined (data->term))
140 constraintTerm_free (data->term);
143 data->term = term;
144 return data;
147 /*@exposed@*/ constraintTerm
148 constraintExprData_termGetTerm (/*@observer@*/ constraintExprData data)
150 llassert (constraintExprData_isDefined (data));
151 return data->term;
155 constraintExprUnaryOpKind
156 constraintExprData_unaryExprGetOp (/*@observer@*/ constraintExprData data)
158 llassert (constraintExprData_isDefined (data));
159 return (data->unaryOp.unaryOp);
163 constraintExpr
164 constraintExprData_unaryExprGetExpr (/*@observer@*/ constraintExprData data)
166 llassert (constraintExprData_isDefined (data));
167 return (data->unaryOp.expr);
170 constraintExprData
171 constraintExprData_unaryExprSetOp (/*@returned@*/ constraintExprData data,
172 constraintExprUnaryOpKind op)
174 llassert (constraintExprData_isDefined (data));
175 data->unaryOp.unaryOp = op;
176 return data;
179 constraintExprData
180 constraintExprData_unaryExprSetExpr (constraintExprData data,
181 /*@only@*/ constraintExpr expr)
183 llassert (constraintExprData_isDefined (data));
185 if (constraintExpr_isDefined (data->unaryOp.expr))
187 constraintExpr_free (data->unaryOp.expr);
190 data->unaryOp.expr = expr;
191 return data;
195 ** binaryExpr stuff
198 constraintExprBinaryOpKind constraintExprData_binaryExprGetOp (constraintExprData data)
200 llassert (constraintExprData_isDefined (data));
201 return (data->binaryOp.binaryOp);
204 constraintExpr constraintExprData_binaryExprGetExpr1 (constraintExprData data)
206 llassert (constraintExprData_isDefined (data));
207 return (data->binaryOp.expr1);
210 constraintExpr constraintExprData_binaryExprGetExpr2 (constraintExprData data)
212 llassert (constraintExprData_isDefined(data));
213 return (data->binaryOp.expr2);
216 constraintExprData
217 constraintExprData_binaryExprSetExpr1 (/*@returned@*/ constraintExprData data,
218 /*@only@*/ constraintExpr expr)
220 llassert (constraintExprData_isDefined (data));
222 if (constraintExpr_isDefined (data->binaryOp.expr1))
223 constraintExpr_free(data->binaryOp.expr1);
225 data->binaryOp.expr1 = expr;
226 return data;
229 constraintExprData
230 constraintExprData_binaryExprSetExpr2 (constraintExprData data, constraintExpr expr)
232 llassert (constraintExprData_isDefined (data));
234 if (constraintExpr_isDefined (data->binaryOp.expr2))
235 constraintExpr_free (data->binaryOp.expr2);
237 data->binaryOp.expr2 = expr;
238 return data;
241 constraintExprData
242 constraintExprData_binaryExprSetOp (constraintExprData data,
243 constraintExprBinaryOpKind op)
245 llassert (constraintExprData_isDefined (data));
246 data->binaryOp.binaryOp = op;
247 return data;