@@ -1621,15 +1621,12 @@ code_blockt java_bytecode_convert_methodt::convert_instructions(
1621
1621
{
1622
1622
PRECONDITION (op.size () == 1 && results.size () == 1 );
1623
1623
1624
- const typecast_exprt pointer (op[0 ], java_array_type (statement[0 ]));
1625
-
1626
- dereference_exprt array{pointer};
1627
- PRECONDITION (pointer.type ().subtype ().id () == ID_struct_tag);
1624
+ dereference_exprt array{
1625
+ typecast_exprt{op[0 ], java_array_type (statement[0 ])}};
1626
+ PRECONDITION (array.type ().id () == ID_struct_tag);
1628
1627
array.set (ID_java_member_access, true );
1629
1628
1630
- const member_exprt length (array, " length" , java_int_type ());
1631
-
1632
- results[0 ]=length;
1629
+ results[0 ] = member_exprt{std::move (array), " length" , java_int_type ()};
1633
1630
}
1634
1631
else if (statement==" tableswitch" ||
1635
1632
statement==" lookupswitch" )
@@ -1823,8 +1820,8 @@ code_blockt java_bytecode_convert_methodt::convert_instructions(
1823
1820
1824
1821
if (start_new_block)
1825
1822
{
1826
- code_labelt newlabel ( label ( std::to_string (address)), code_blockt ());
1827
- root_block. add (newlabel );
1823
+ root_block. add (
1824
+ code_labelt{ label ( std::to_string (address)), code_blockt{}} );
1828
1825
root.branch .push_back (block_tree_nodet::get_leaf ());
1829
1826
assert ((root.branch_addresses .empty () ||
1830
1827
root.branch_addresses .back ()<address) &&
@@ -2490,7 +2487,7 @@ code_blockt java_bytecode_convert_methodt::convert_newarray(
2490
2487
constant_exprt size_limit = from_integer (max_array_length, java_int_type ());
2491
2488
binary_relation_exprt le_max_size (op[0 ], ID_le, size_limit);
2492
2489
code_assumet assume_le_max_size (le_max_size);
2493
- block.add (assume_le_max_size);
2490
+ block.add (std::move ( assume_le_max_size) );
2494
2491
}
2495
2492
const exprt tmp = tmp_variable (" newarray" , ref_type);
2496
2493
block.add (code_assignt (tmp, java_new_array));
@@ -2693,10 +2690,10 @@ code_blockt java_bytecode_convert_methodt::convert_iinc(
2693
2690
2694
2691
const exprt arg1_int_type =
2695
2692
typecast_exprt::conditional_cast (arg1, java_int_type ());
2696
- const code_assignt code_assign (
2693
+ code_assignt code_assign (
2697
2694
variable (arg0, ' i' , address, NO_CAST),
2698
2695
plus_exprt (variable (arg0, ' i' , address, CAST_AS_NEEDED), arg1_int_type));
2699
- block.add (code_assign);
2696
+ block.add (std::move ( code_assign) );
2700
2697
2701
2698
return block;
2702
2699
}
@@ -2829,20 +2826,16 @@ exprt java_bytecode_convert_methodt::convert_aload(
2829
2826
const irep_idt &statement,
2830
2827
const exprt::operandst &op) const
2831
2828
{
2832
- const char &type_char = statement[0 ];
2833
- const typecast_exprt pointer (op[0 ], java_array_type (type_char));
2834
-
2835
- dereference_exprt deref{pointer};
2829
+ const char type_char = statement[0 ];
2830
+ dereference_exprt deref{typecast_exprt{op[0 ], java_array_type (type_char)}};
2836
2831
deref.set (ID_java_member_access, true );
2837
2832
2838
- const member_exprt data_ptr (
2833
+ member_exprt data_ptr (
2839
2834
deref, " data" , pointer_type (java_type_from_char (type_char)));
2840
-
2841
- plus_exprt data_plus_offset{data_ptr, op[1 ]};
2835
+ plus_exprt data_plus_offset{std::move (data_ptr), op[1 ]};
2842
2836
// tag it so it's easy to identify during instrumentation
2843
2837
data_plus_offset.set (ID_java_array_access, true );
2844
- const dereference_exprt element{data_plus_offset};
2845
- return java_bytecode_promotion (element);
2838
+ return java_bytecode_promotion (dereference_exprt{data_plus_offset});
2846
2839
}
2847
2840
2848
2841
code_blockt java_bytecode_convert_methodt::convert_store (
@@ -2878,18 +2871,14 @@ code_blockt java_bytecode_convert_methodt::convert_astore(
2878
2871
const source_locationt &location)
2879
2872
{
2880
2873
const char type_char = statement[0 ];
2881
- const typecast_exprt pointer (op[0 ], java_array_type (type_char));
2882
-
2883
- dereference_exprt deref{pointer};
2874
+ dereference_exprt deref{typecast_exprt{op[0 ], java_array_type (type_char)}};
2884
2875
deref.set (ID_java_member_access, true );
2885
2876
2886
- const member_exprt data_ptr (
2877
+ member_exprt data_ptr (
2887
2878
deref, " data" , pointer_type (java_type_from_char (type_char)));
2888
-
2889
- plus_exprt data_plus_offset{data_ptr, op[1 ]};
2879
+ plus_exprt data_plus_offset{std::move (data_ptr), op[1 ]};
2890
2880
// tag it so it's easy to identify during instrumentation
2891
2881
data_plus_offset.set (ID_java_array_access, true );
2892
- const dereference_exprt element{data_plus_offset};
2893
2882
2894
2883
code_blockt block;
2895
2884
block.add_source_location () = location;
0 commit comments