https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106973
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |iains at gcc dot gnu.org Status|WAITING |NEW --- Comment #3 from Martin Liška <marxin at gcc dot gnu.org> --- Thanks, reduced to: cat preprocessed.cpp namespace std { template <typename> using remove_reference_t = int; template <typename _Result> struct coroutine_traits : _Result {}; template <typename = void> struct coroutine_handle { operator coroutine_handle<>(); }; struct suspend_always { bool await_ready() noexcept; void await_suspend(coroutine_handle<>) noexcept; void await_resume() noexcept; }; } // namespace std struct generator_promise { void get_return_object(); std::suspend_always initial_suspend(); std::suspend_always final_suspend() noexcept; std::suspend_always yield_value(std::remove_reference_t<int>); void unhandled_exception(); }; struct generator { using promise_type = generator_promise; }; void setjmp(int); int foo_env; generator foo() { setjmp(foo_env); co_yield 1; }