https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113457
Arsen Arsenović <arsen at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|Trying to emulate |Nesting coroutine
|views::concat with |definitions (e.g. via a
|std::generator gives ICE on |lambda or a template
|co_yield: "internal |expansion) can ICE the
|compiler error: in |compiler
|canonicalize_component_ref, |
|at gimplify.cc" |
Assignee|unassigned at gcc dot gnu.org |arsen at gcc dot gnu.org
Status|NEW |ASSIGNED
--- Comment #8 from Arsen Arsenović <arsen at gcc dot gnu.org> ---
reduced more:
#include <coroutine>
struct coro
{
struct promise_type
{
std::suspend_never initial_suspend ();
std::suspend_never final_suspend () noexcept;
void return_void ();
void unhandled_exception ();
coro get_return_object ();
};
};
struct not_quite_suspend_never : std::suspend_never
{};
coro
foo ()
{
co_await std::suspend_never{},
[] () -> coro { co_return; },
co_await not_quite_suspend_never{};
}