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