https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109945

--- Comment #13 from Richard Biener <rguenth at gcc dot gnu.org> ---
(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
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.

Reply via email to