@@ -176,7 +176,8 @@ goto_programt::targett remove_java_newt::lower_java_new_array(
176
176
struct_type.components ()[1 ].type ());
177
177
dest.insert_before (
178
178
next,
179
- goto_programt::make_assignment (code_assignt (length, rhs.op0 ()), location));
179
+ goto_programt::make_assignment (
180
+ code_assignt (length, to_multi_ary_expr (rhs).op0 ()), location));
180
181
181
182
// we also need to allocate space for the data
182
183
member_exprt data (
@@ -205,7 +206,7 @@ goto_programt::targett remove_java_newt::lower_java_new_array(
205
206
// backend.
206
207
const irept size_bound = rhs.find (ID_length_upper_bound);
207
208
if (size_bound.is_nil ())
208
- data_java_new_expr.set (ID_size, rhs.op0 ());
209
+ data_java_new_expr.set (ID_size, to_multi_ary_expr ( rhs) .op0 ());
209
210
else
210
211
data_java_new_expr.set (ID_size, size_bound);
211
212
@@ -276,8 +277,9 @@ goto_programt::targett remove_java_newt::lower_java_new_array(
276
277
277
278
side_effect_exprt inc (ID_assign, typet (), location);
278
279
inc.operands ().resize (2 );
279
- inc.op0 () = tmp_i;
280
- inc.op1 () = plus_exprt (tmp_i, from_integer (1 , tmp_i.type ()));
280
+ to_binary_expr (inc).op0 () = tmp_i;
281
+ to_binary_expr (inc).op1 () =
282
+ plus_exprt (tmp_i, from_integer (1 , tmp_i.type ()));
281
283
282
284
dereference_exprt deref_expr (
283
285
plus_exprt (data, tmp_i), data.type ().subtype ());
@@ -299,7 +301,7 @@ goto_programt::targett remove_java_newt::lower_java_new_array(
299
301
300
302
const code_fort for_loop (
301
303
code_assignt (tmp_i, from_integer (0 , tmp_i.type ())),
302
- binary_relation_exprt (tmp_i, ID_lt, rhs.op0 ()),
304
+ binary_relation_exprt (tmp_i, ID_lt, to_multi_ary_expr ( rhs) .op0 ()),
303
305
std::move (inc),
304
306
std::move (for_body));
305
307
0 commit comments