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

Iain Sandoe <iains at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2021-06-11
           See Also|                            |https://gcc.gnu.org/bugzill
                   |                            |a/show_bug.cgi?id=94794,
                   |                            |https://gcc.gnu.org/bugzill
                   |                            |a/show_bug.cgi?id=95137

--- Comment #1 from Iain Sandoe <iains at gcc dot gnu.org> ---
for symmetric transfer to work without stack overflow, it relies on an indirect
tailcall.

For some GCC targets indirect tail-calls are not available without some
additional support (see PR94794).

I tried to reproduce this (with a test case I use regularly for this) on a
target that normally completes symmetric transfers successfully when the
optimisation level is > 1. (x86_64, darwin).

The fail also occurs with my regular test case with -fsanitize=address - so, it
seems that the inclusion of the address sanitiser is preventing or interfering
with the tailcall.  Note that there are also other known issues with coroutines
and the sanitizers (PR95137).

Reply via email to