AGGR_INIT_EXPR_ARGP (aggr_init_expr));
TREE_NOTHROW (call_expr) = TREE_NOTHROW (aggr_init_expr);
CALL_EXPR_LIST_INIT_P (call_expr) = CALL_EXPR_LIST_INIT_P (aggr_init_expr);
- tree ret = call_expr;
if (style == ctor)
{
expand_call{,_inline}. */
cxx_mark_addressable (slot);
CALL_EXPR_RETURN_SLOT_OPT (call_expr) = true;
- ret = build2 (INIT_EXPR, TREE_TYPE (ret), slot, ret);
+ call_expr = build2 (INIT_EXPR, TREE_TYPE (call_expr), slot, call_expr);
}
else if (style == pcc)
{
need to copy the returned value out of the static buffer into the
SLOT. */
push_deferring_access_checks (dk_no_check);
- ret = build_aggr_init (slot, ret,
- DIRECT_BIND | LOOKUP_ONLYCONVERTING,
- tf_warning_or_error);
+ call_expr = build_aggr_init (slot, call_expr,
+ DIRECT_BIND | LOOKUP_ONLYCONVERTING,
+ tf_warning_or_error);
pop_deferring_access_checks ();
- ret = build2 (COMPOUND_EXPR, TREE_TYPE (slot), ret, slot);
+ call_expr = build2 (COMPOUND_EXPR, TREE_TYPE (slot), call_expr, slot);
}
if (AGGR_INIT_ZERO_FIRST (aggr_init_expr))
tree init = build_zero_init (type, NULL_TREE,
/*static_storage_p=*/false);
init = build2 (INIT_EXPR, void_type_node, slot, init);
- ret = build2 (COMPOUND_EXPR, TREE_TYPE (ret), init, ret);
+ call_expr = build2 (COMPOUND_EXPR, TREE_TYPE (call_expr),
+ init, call_expr);
}
- *tp = ret;
+ *tp = call_expr;
}
/* Emit all thunks to FN that should be emitted when FN is emitted. */