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;
}