https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94752
Bug ID: 94752 Summary: [coroutines] compiler ICE with coroutine with unnamed parameter Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: lewissbaker.opensource at gmail dot com Target Milestone: --- See https://godbolt.org/z/QCXqeo Compile the following source code with GCC trunk. Flags: -std=c++20 -fcoroutines ----- #include <coroutine> using namespace std; struct task { struct promise_type { promise_type() {} task get_return_object() { return {}; } suspend_never initial_suspend() { return {}; } suspend_never final_suspend() { return {}; } void return_void() {} void unhandled_exception() {} }; }; task foo(int) { co_return; } ----- Results in an internal-compile-error - segmentation-fault. Pointing at closing curly-brace of 'foo()'. Seems to be related to the parameter being unnamed as naming the parameter results in this code compiling successfully.