https://compiler-explorer.com/z/TPjEdMWxn transforms into https://compiler-explorer.com/z/o11zKTWKj
the first produces the output:
the second produces the output:
if(__f->__suspend_39_14.await_suspend(std::coroutine_handle<Task::promise_type>::from_address(static_cast<void *>(__f)).operator std::coroutine_handle<void>()).address()) {
return;
}
should be
return __f->__suspend_39_14.await_suspend(std::coroutine_handle<Task::promise_type>::from_address(static_cast<void *>(__f)).operator std::coroutine_handle<void>()).resume();//should preform tail-call-optimisation
https://compiler-explorer.com/z/TPjEdMWxn transforms into https://compiler-explorer.com/z/o11zKTWKj
the first produces the output:
the second produces the output:
should be