@@ -461,14 +461,16 @@ void c_typecheck_baset::typecheck_expr_builtin_va_arg(exprt &expr)
461
461
462
462
implicit_typecast (arg, pointer_type (void_type ()));
463
463
464
+ auto function=symbol_exprt (ID_gcc_builtin_va_arg, new_type);
465
+ function.add_source_location ()=expr.source_location ();
466
+
464
467
// turn into function call
465
- side_effect_expr_function_callt result;
468
+ side_effect_expr_function_callt result (
469
+ function,
470
+ { arg },
471
+ new_type.return_type ());
472
+
466
473
result.add_source_location ()=expr.source_location ();
467
- result.function ()=symbol_exprt (ID_gcc_builtin_va_arg);
468
- result.function ().add_source_location ()=expr.source_location ();
469
- result.function ().type ()=new_type;
470
- result.arguments ().push_back (arg);
471
- result.type ()=new_type.return_type ();
472
474
473
475
expr.swap (result);
474
476
@@ -881,15 +883,13 @@ void c_typecheck_baset::typecheck_side_effect_statement_expression(
881
883
882
884
code_function_callt &fc=to_code_function_call (last);
883
885
884
- side_effect_expr_function_callt sideeffect;
886
+ auto return_type=
887
+ static_cast <const typet &>(fc.function ().type ().find (ID_return_type));
885
888
886
- sideeffect. function ()=fc. function ();
887
- sideeffect. arguments ()= fc.arguments ();
889
+ side_effect_expr_function_callt sideeffect (
890
+ fc. function (), fc.arguments (), return_type );
888
891
sideeffect.add_source_location ()=fc.source_location ();
889
892
890
- sideeffect.type ()=
891
- static_cast <const typet &>(fc.function ().type ().find (ID_return_type));
892
-
893
893
expr.type ()=sideeffect.type ();
894
894
895
895
if (fc.lhs ().is_nil ())
0 commit comments