https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95510
Bug ID: 95510
Summary: [coroutines] ICE with consteval operator co_await
Product: gcc
Version: 10.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: bruck.michael at gmail dot com
Target Milestone: ---
https://gcc.godbolt.org/z/JAaXAA
#include <coroutine>
struct dummy
{
struct promise_type
{
std::suspend_always initial_suspend() const noexcept { return {}; }
std::suspend_never final_suspend() const noexcept { return {}; }
dummy get_return_object() const noexcept { return {}; }
void return_void() const noexcept {}
void unhandled_exception() const noexcept {}
};
};
struct awaitable {};
consteval auto operator co_await(awaitable) noexcept
{
return std::suspend_always{};
}
dummy foo()
{
co_await awaitable{};
}
int main() {}
---
source>: In function 'dummy foo()':
<source>:24:24: internal compiler error: in extract_call_expr, at
cp/call.c:6634
24 | co_await awaitable{};
| ^