https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109945
--- Comment #14 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (In reply to Richard Biener from comment #13) > with the former for -m64 and the latter for -m32 only seems to be the > only fallout here. It will penalize C and other languages without mandatory NRV in the FEs, without that I think the address can't escape (taking address then would either prevent tree-nrv.cc or even if not, would be still considered taking address of a local variable). Perhaps we could remember in some FUNCTION_DECL bit whether mandatory NRV was done and least for the cases where we know the callee, we know it hasn't done NRV and !TREE_ADDRESSABLE (TREE_TYPE (gimple_call_lhs (stmt)))) we could avoid this. But perhaps it is an overkill.