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

Reply via email to