https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95599
--- Comment #1 from Lewis Baker <lewissbaker.opensource at gmail dot com> --- Note there is also some different behaviour if we change the example slightly by removing awaitable::~awaitable() and leaving the awaitable type with a trivial destructor. See https://godbolt.org/z/ff5Uvy In this case, instead of the resource destructor being called before the coroutine suspends, the resource destructor is never called. ie. observed output becomes: ``` resource() awaitable::await_suspend() awaitable::await_resume() ```