PR c++/19317 Leave the return slot target in the MODIFY_EXPR rather than making it an argument, but only use it if the CALL_EXPR has a flag set. * tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): Rename to CALL_EXPR_RETURN_SLOT_OPT. * calls.c (expand_call): Adjust. * tree-inline.c (expand_call_inline): Adjust. * tree-pretty-print.c (dump_generic_node): Adjust. And set the flag as appropriate. * gimplify.c (gimplify_modify_expr_rhs): Set CALL_EXPR_HAS_RETURN_SLOT_ADDR where the LHS is obviously safe. * tree-nrv.c (execute_return_slot_opt): Set CALL_EXPR_HAS_RETURN_SLOT_ADDR based on escape analysis. * tree-pass.h: Declare pass_return_slot. * tree-optimize.c (init_tree_optimization_passes): Add it. * cp/semantics.c (simplify_aggr_init_expr): Use CALL_EXPR_RETURN_SLOT_OPT, not CALL_EXPR_HAS_RETURN_SLOT_ADDR. From-SVN: r101269
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
abi | Loading commit data... | |
bprob | Loading commit data... | |
charset | Loading commit data... | |
compat | Loading commit data... | |
conversion | Loading commit data... | |
cpp | Loading commit data... | |
debug | Loading commit data... | |
eh | Loading commit data... | |
expr | Loading commit data... | |
ext | Loading commit data... | |
gcov | Loading commit data... | |
inherit | Loading commit data... | |
init | Loading commit data... | |
lookup | Loading commit data... | |
opt | Loading commit data... | |
other | Loading commit data... | |
overload | Loading commit data... | |
parse | Loading commit data... | |
pch | Loading commit data... | |
rtti | Loading commit data... | |
special | Loading commit data... | |
tc1 | Loading commit data... | |
template | Loading commit data... | |
tls | Loading commit data... | |
tree-ssa | Loading commit data... | |
vect | Loading commit data... | |
warn | Loading commit data... | |
README | Loading commit data... | |
dg.exp | Loading commit data... |