https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94794
Bug ID: 94794 Summary: coroutines: Support is needed for symmetric transter on targets without arbitrary indirect tail-calls Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: iains at gcc dot gnu.org Target Milestone: --- For symmetric transfers to work with C++20 coroutines, it is currently necessary to tail call the callee coroutine from resume method of the caller coroutine. Unfortunately, several targets have ABI constraints that prevent arbitrary indirect tail-calls which means that we do not have a FE design that works consistently (or at all for O < 2). For some targets, where the tail calls are supported, it's possible to mandate their use for O0 etc, but we'd need a target hook to test this - the existing "ok for sib call" is not usable in the FE.