https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109945
--- Comment #19 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Richard Biener from comment #13) > (In reply to Richard Biener from comment #12) > > For the fun of it I'm testing > > > > diff --git a/gcc/tree-ssa-structalias.cc b/gcc/tree-ssa-structalias.cc > > index 56021c59cb9..1e7f0383371 100644 > > --- a/gcc/tree-ssa-structalias.cc > > +++ b/gcc/tree-ssa-structalias.cc > > @@ -4366,7 +4366,7 @@ handle_rhs_call (gcall *stmt, vec<ce_s> *results, > > /* And if we applied NRV the address of the return slot escapes as well. > > */ > > if (gimple_call_return_slot_opt_p (stmt) > > && gimple_call_lhs (stmt) != NULL_TREE > > - && TREE_ADDRESSABLE (TREE_TYPE (gimple_call_lhs (stmt)))) > > + && aggregate_value_p (gimple_call_lhs (stmt), gimple_call_fntype > > (stmt))) > > { > > int flags = gimple_call_retslot_flags (stmt); > > const int relevant_flags = EAF_NO_DIRECT_ESCAPE > > FAIL: g++.dg/opt/pr91838.C -std=c++14 scan-assembler > pxor\\\\s+%xmm0,\\\\s+%xmm0 The above is present even without the patch so it's only the tailcall testcase that's fallout. > FAIL: gcc.dg/tree-ssa/tailcall-7.c scan-tree-dump-times tailc "Found tail > call" 5 > > with the former for -m64 and the latter for -m32 only seems to be the > only fallout here.