@@ -809,11 +809,14 @@ void string_refine_preprocesst::make_string_function_side_effect(
809
809
const irep_idt &function_name,
810
810
const std::string &signature)
811
811
{
812
+ // TODO: Here we create a copy of the code_function_cally. We would prefer
813
+ // accessing it by reference, but this creates problems.
812
814
code_function_callt function_call=to_code_function_call (target->code );
813
815
source_locationt loc=function_call.source_location ();
814
816
std::list<code_assignt> assignments;
815
- exprt lhs=function_call.lhs ();
816
- exprt s=function_call.arguments ()[0 ];
817
+ const exprt &lhs=function_call.lhs ();
818
+ assert (!function_call.arguments ().empty ());
819
+ const exprt &s=function_call.arguments ()[0 ];
817
820
code_typet function_type=to_code_type (function_call.type ());
818
821
819
822
function_type.return_type ()=s.type ();
@@ -901,7 +904,7 @@ void string_refine_preprocesst::make_to_char_array_function(
901
904
const code_function_callt &function_call=to_code_function_call (target->code );
902
905
source_locationt location=function_call.source_location ();
903
906
904
- assert (function_call.arguments ().size ()>= 1 );
907
+ assert (! function_call.arguments ().empty () );
905
908
const exprt &string_argument=function_call.arguments ()[0 ];
906
909
assert (is_java_string_pointer_type (string_argument.type ()));
907
910
@@ -985,7 +988,7 @@ exprt::operandst string_refine_preprocesst::process_arguments(
985
988
arg=typecast_exprt (arg, jls_ptr);
986
989
}
987
990
arg=make_cprover_string_assign (goto_program, target, arg, location);
988
- typet type=ns.follow (arg.type ());
991
+ const typet & type=ns.follow (arg.type ());
989
992
if (is_java_char_array_pointer_type (type))
990
993
{
991
994
arg=make_cprover_char_array_assign (goto_program, target, arg, location);
0 commit comments