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).