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

--- Comment #12 from Iain Sandoe <iains at gcc dot gnu.org> ---
noting the CWG issue, this is a tricky area since [current] tests might be
expecting either the existing clang/MSVC (and previous GCC) behaviour - or the
revised GCC behaviour.

What seems clear to me is that the intention of the design was to allow the
coroutine body access to the coroutine return object (e.g. as a place to
communicate status, etc).  Ergo, it seems that this implies that the return
object must be completely constructed before the initial suspend.  If we put it
in some temporary place, then we end up with problems moving it into the result
object when the ramp returns... which is why we've placed it in the result.

Reply via email to