https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93642
Bug ID: 93642 Summary: [Coroutines] internal compiler error: in expand_expr_addr_expr_1, at expr.c:8070 using co_return Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: wezrule at hotmail dot com Target Milestone: --- Created attachment 47805 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47805&action=edit Preprocessed file Using the master git branch from a couple days ago, HEAD is c7c09af8ef0fe6671c7733d4d67bb73ecf10fc1b. gcc version 10.0.1 20200208 (experimental) (GCC). I tried to make the code as small as possible while still being able to reproduce the issue: c.cpp #include <coroutines> struct promise { auto initial_suspend() { return std::suspend_always{}; } auto final_suspend() noexcept { return std::suspend_always{}; } void unhandled_exception(); auto get_return_object() { return std::coroutine_handle<promise>::from_promise(*this); } void return_void(); }; class task { public: using promise_type = promise; task(std::coroutine_handle<promise_type> handle); }; task func () { co_return; } When using the build command: g++ -fcoroutines -c c.pp The following error is given: during RTL pass: expand c.cpp: In function ‘task func()’: c.cpp:20:1: internal compiler error: in expand_expr_addr_expr_1, at expr.c:8070 20 | } | ^ 0x74435a expand_expr_addr_expr_1 ../../gcc/expr.c:8070 0xcc7f24 expand_expr_addr_expr ../../gcc/expr.c:8183 0xcc7f24 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/expr.c:11358 0xb8d959 expand_normal ../../gcc/expr.h:288 0xb8d959 precompute_register_parameters ../../gcc/calls.c:982 0xb97137 expand_call(tree_node*, rtx_def*, int) ../../gcc/calls.c:4397 0xcc7d5b expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/expr.c:11130 0xba9509 expand_expr ../../gcc/expr.h:282 0xba9509 expand_call_stmt ../../gcc/cfgexpand.c:2703 0xba9509 expand_gimple_stmt_1 ../../gcc/cfgexpand.c:3682 0xba9509 expand_gimple_stmt ../../gcc/cfgexpand.c:3847 0xbad843 expand_gimple_basic_block ../../gcc/cfgexpand.c:5887 0xbaf816 execute ../../gcc/cfgexpand.c:6542 I've attached the preprocessed file too. It is also reproducible on compiler explorer on the coroutines branch https://godbolt.org/z/3L9bDu