http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57485
Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mpolacek at gcc dot gnu.org --- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> --- I think this is return slot optimization. We can perform it in the first case, because struct S s = f(); is an initializer, but not in the second case, because we have a MODIFY_EXPR and the LHS is already addressable and in that case the RSO is forbidden (?).