@@ -84,16 +84,15 @@ exprt good_pointer_def(
84
84
const exprt &pointer,
85
85
const namespacet &ns)
86
86
{
87
- const pointer_typet &pointer_type= to_pointer_type (ns. follow ( pointer.type () ));
87
+ const pointer_typet &pointer_type = to_pointer_type (pointer.type ());
88
88
const typet &dereference_type=pointer_type.subtype ();
89
89
90
90
const or_exprt good_dynamic_tmp1 (
91
91
not_exprt (malloc_object (pointer, ns)),
92
92
and_exprt (
93
- not_exprt (dynamic_object_lower_bound (pointer, ns, nil_exprt ())),
94
- not_exprt (
95
- dynamic_object_upper_bound (
96
- pointer, ns, size_of_expr (dereference_type, ns)))));
93
+ not_exprt (dynamic_object_lower_bound (pointer, nil_exprt ())),
94
+ not_exprt (dynamic_object_upper_bound (
95
+ pointer, ns, size_of_expr (dereference_type, ns)))));
97
96
98
97
const and_exprt good_dynamic_tmp2 (
99
98
not_exprt (deallocated (pointer, ns)), good_dynamic_tmp1);
@@ -106,9 +105,8 @@ exprt good_pointer_def(
106
105
const not_exprt not_invalid (invalid_pointer (pointer));
107
106
108
107
const or_exprt bad_other (
109
- object_lower_bound (pointer, ns, nil_exprt ()),
110
- object_upper_bound (
111
- pointer, ns, size_of_expr (dereference_type, ns)));
108
+ object_lower_bound (pointer, nil_exprt ()),
109
+ object_upper_bound (pointer, size_of_expr (dereference_type, ns)));
112
110
113
111
const or_exprt good_other (dynamic_object (pointer), not_exprt (bad_other));
114
112
@@ -145,10 +143,9 @@ exprt invalid_pointer(const exprt &pointer)
145
143
146
144
exprt dynamic_object_lower_bound (
147
145
const exprt &pointer,
148
- const namespacet &ns,
149
146
const exprt &offset)
150
147
{
151
- return object_lower_bound (pointer, ns, offset);
148
+ return object_lower_bound (pointer, offset);
152
149
}
153
150
154
151
exprt dynamic_object_upper_bound (
@@ -171,22 +168,17 @@ exprt dynamic_object_upper_bound(
171
168
{
172
169
op=ID_gt;
173
170
174
- if (ns.follow (object_offset.type ())!=
175
- ns.follow (access_size.type ()))
176
- object_offset.make_typecast (access_size.type ());
177
- sum=plus_exprt (object_offset, access_size);
171
+ sum = plus_exprt (
172
+ typecast_exprt::conditional_cast (object_offset, access_size.type ()),
173
+ access_size);
178
174
}
179
175
180
- if (ns.follow (sum.type ())!=
181
- ns.follow (malloc_size.type ()))
182
- sum.make_typecast (malloc_size.type ());
183
-
184
- return binary_relation_exprt (sum, op, malloc_size);
176
+ return binary_relation_exprt (
177
+ typecast_exprt::conditional_cast (sum, malloc_size.type ()), op, malloc_size);
185
178
}
186
179
187
180
exprt object_upper_bound (
188
181
const exprt &pointer,
189
- const namespacet &ns,
190
182
const exprt &access_size)
191
183
{
192
184
// this is
@@ -204,23 +196,19 @@ exprt object_upper_bound(
204
196
{
205
197
op=ID_gt;
206
198
207
- if (ns.follow (object_offset.type ())!=
208
- ns.follow (access_size.type ()))
209
- object_offset.make_typecast (access_size.type ());
210
- sum=plus_exprt (object_offset, access_size);
199
+ sum = plus_exprt (
200
+ typecast_exprt::conditional_cast (object_offset, access_size.type ()),
201
+ access_size);
211
202
}
212
203
213
-
214
- if (ns.follow (sum.type ())!=
215
- ns.follow (object_size_expr.type ()))
216
- sum.make_typecast (object_size_expr.type ());
217
-
218
- return binary_relation_exprt (sum, op, object_size_expr);
204
+ return binary_relation_exprt (
205
+ typecast_exprt::conditional_cast (sum, object_size_expr.type ()),
206
+ op,
207
+ object_size_expr);
219
208
}
220
209
221
210
exprt object_lower_bound (
222
211
const exprt &pointer,
223
- const namespacet &ns,
224
212
const exprt &offset)
225
213
{
226
214
exprt p_offset=pointer_offset (pointer);
@@ -230,11 +218,8 @@ exprt object_lower_bound(
230
218
231
219
if (offset.is_not_nil ())
232
220
{
233
- if (ns.follow (p_offset.type ())!=ns.follow (offset.type ()))
234
- p_offset=
235
- plus_exprt (p_offset, typecast_exprt (offset, p_offset.type ()));
236
- else
237
- p_offset=plus_exprt (p_offset, offset);
221
+ p_offset = plus_exprt (
222
+ p_offset, typecast_exprt::conditional_cast (offset, p_offset.type ()));
238
223
}
239
224
240
225
return binary_relation_exprt (p_offset, ID_lt, zero);
0 commit comments