https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100476
--- Comment #2 from Jason Merrill <jason at gcc dot gnu.org> --- (In reply to Iain Sandoe from comment #1) > I am by no means an expert at reading standardese - and it might be that I'm > not alone, (library writers might have made the same assumption) but it > seems to me that: > > http://eel.is/c++draft/dcl.fct.def.coroutine#7 > > Doe not make any specification about what get_return_object() returns, > only that it is possible to use it either (a) to initialise the return value > directly or (b) to construct a return value object from it. It says that you initialize the return value from get_return_object(), which sounds like return promise.get_return_object(); in a non-coroutine, which is an error if get_return_object returns void.