https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118874
--- Comment #10 from Iain Sandoe <iains at gcc dot gnu.org> ---

In the coroutine handling to deal with 
https://eel.is/c++draft/dcl.fct.def.coroutine#7

we unconditionally create the return object in the <retval> slot - if we create
it somewhere else, that causes us to produce an unexpected additional copy.

So, I suppose, the difference is the unconditional use (it's not clear to me at
the moment how to avoid that - the intent (AFAIU) is that the return object is
available to the coroutine body (including initial suspend)).

Reply via email to