If the operand is a braced-init-list or an expression of non-void type,
S is p.return_Βvalue(expr-or-braced-init-list). The expression S shall be a prvalue of type void.
If p.return_Βvoid() is a valid expression,
flowing off the end of a coroutine is equivalent to a co_Βreturn with no operand;
otherwise flowing off the end of a coroutine results in undefined behavior.