Skip to content

Commit 29dbc16

Browse files
author
Daniel Kroening
committed
use proper constructor for side_effect_expr_function_callt
1 parent 503722a commit 29dbc16

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

src/ansi-c/c_typecheck_expr.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -461,14 +461,16 @@ void c_typecheck_baset::typecheck_expr_builtin_va_arg(exprt &expr)
461461

462462
implicit_typecast(arg, pointer_type(void_type()));
463463

464+
auto function=symbol_exprt(ID_gcc_builtin_va_arg, new_type);
465+
function.add_source_location()=expr.source_location();
466+
464467
// 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+
466473
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();
472474

473475
expr.swap(result);
474476

@@ -881,15 +883,13 @@ void c_typecheck_baset::typecheck_side_effect_statement_expression(
881883

882884
code_function_callt &fc=to_code_function_call(last);
883885

884-
side_effect_expr_function_callt sideeffect;
886+
auto return_type=
887+
static_cast<const typet &>(fc.function().type().find(ID_return_type));
885888

886-
sideeffect.function()=fc.function();
887-
sideeffect.arguments()=fc.arguments();
889+
side_effect_expr_function_callt sideeffect(
890+
fc.function(), fc.arguments(), return_type);
888891
sideeffect.add_source_location()=fc.source_location();
889892

890-
sideeffect.type()=
891-
static_cast<const typet &>(fc.function().type().find(ID_return_type));
892-
893893
expr.type()=sideeffect.type();
894894

895895
if(fc.lhs().is_nil())

0 commit comments

Comments
 (0)