https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94817
Bug ID: 94817 Summary: ICE in add_stmt, at cp/semantics.c:392 Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- g++-10.0.1-alpha20200426 snapshot (g:29f55115583a0dab6cbac749c4f0804fd88e9536) ICEs when compiling the following testcase, extracted from clang/testsuite/SemaCXX/coroutines.cpp from the clang 10.0.0 test suite, w/ -fcoroutines: void no_coroutine_traits() { co_await 4; } template <class... Args> struct void_t_imp { using type = void; }; % g++-10.0.1 -fcoroutines -c e96qfdep.cpp e96qfdep.cpp: In function 'void no_coroutine_traits()': e96qfdep.cpp:2:3: error: coroutines require a traits template; cannot find 'std::coroutine_traits' 2 | co_await 4; | ^~~~~~~~ e96qfdep.cpp:2:3: note: perhaps '#include <coroutine>' is missing e96qfdep.cpp:8:1: internal compiler error: in add_stmt, at cp/semantics.c:392 8 | }; | ^ 0x678153 add_stmt(tree_node*) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200426/work/gcc-10-20200426/gcc/cp/semantics.c:392 0x89887a finish_struct(tree_node*, tree_node*) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200426/work/gcc-10-20200426/gcc/cp/class.c:7563 0x999413 cp_parser_class_specifier_1 /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200426/work/gcc-10-20200426/gcc/cp/parser.c:23881 0x99b4bb cp_parser_class_specifier /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200426/work/gcc-10-20200426/gcc/cp/parser.c:24180 0x99b4bb cp_parser_type_specifier /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200426/work/gcc-10-20200426/gcc/cp/parser.c:17711 0x99c5c5 cp_parser_decl_specifier_seq /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200426/work/gcc-10-20200426/gcc/cp/parser.c:14359 0x9c3c78 cp_parser_single_declaration /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200426/work/gcc-10-20200426/gcc/cp/parser.c:29396 0x9c402c cp_parser_template_declaration_after_parameters /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200426/work/gcc-10-20200426/gcc/cp/parser.c:29059 0x9c4790 cp_parser_explicit_template_declaration /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200426/work/gcc-10-20200426/gcc/cp/parser.c:29325 0x9c79a9 cp_parser_declaration /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200426/work/gcc-10-20200426/gcc/cp/parser.c:13382 0x9c7fef cp_parser_translation_unit /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200426/work/gcc-10-20200426/gcc/cp/parser.c:4734 0x9c7fef c_parse_file() /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200426/work/gcc-10-20200426/gcc/cp/parser.c:43975 0xae0edb c_common_parse_file() /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200426/work/gcc-10-20200426/gcc/c-family/c-opts.c:1190