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.

Reply via email to