https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94000

            Bug ID: 94000
           Summary: ICE: tree check: expected class 'expression', have
                    'exceptional' (error_mark) in tree_operand_check, at
                    tree.h:3776
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: error-recovery, 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-alpha20200301 snapshot (g:151bf47e78f5d919f6cc591d11cc1f6aff61078f)
ICEs when compiling the following testcase w/ -std=c++2a:

template <typename> class qb {};
template <typename> class en {};
template <typename KV> concept ph = en<KV> {};
template <typename ON> concept bt = qb<ON>;
template <typename BE> concept ty = bt<BE> &&ph<BE>;
template <ty> class nl;
template <ty LZ> class nl<LZ> {};

% g++-10.0.1 -std=c++2a -c glmthfih.cc
glmthfih.cc:4:43: error: expected primary-expression before ';' token
    4 | template <typename ON> concept bt = qb<ON>;
      |                                           ^
glmthfih.cc:7:24: internal compiler error: tree check: expected class
'expression', have 'exceptional' (error_mark) in tree_operand_check, at
tree.h:3776
    7 | template <ty LZ> class nl<LZ> {};
      |                        ^~~~~~
0x7ba4d2 tree_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200301/work/gcc-10-20200301/gcc/tree.c:9735
0x62bc8e expr_check(tree_node*, char const*, int, char const*)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200301/work/gcc-10-20200301/gcc/tree.h:3447
0x62bc8e tree_operand_check(tree_node*, int, char const*, int, char const*)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200301/work/gcc-10-20200301/gcc/tree.h:3776
0x62bc8e dnf_size_r
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200301/work/gcc-10-20200301/gcc/cp/logic.cc:371
0x94acc0 dnf_size_r
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200301/work/gcc-10-20200301/gcc/cp/logic.cc:373
0x94bc17 dnf_size
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200301/work/gcc-10-20200301/gcc/cp/logic.cc:578
0x94bc17 subsumes_constraints_nonnull
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200301/work/gcc-10-20200301/gcc/cp/logic.cc:862
0x94bc17 subsumes(tree_node*, tree_node*)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200301/work/gcc-10-20200301/gcc/cp/logic.cc:904
0x8b73ed strictly_subsumes(tree_node*, tree_node*, tree_node*)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200301/work/gcc-10-20200301/gcc/cp/constraint.cc:2976
0xa0e6cf process_partial_specialization
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200301/work/gcc-10-20200301/gcc/cp/pt.c:5005
0xa11051 push_template_decl_real(tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200301/work/gcc-10-20200301/gcc/cp/pt.c:5603
0xa11051 push_template_decl(tree_node*)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200301/work/gcc-10-20200301/gcc/cp/pt.c:6016
0xa11051 maybe_process_partial_specialization(tree_node*)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200301/work/gcc-10-20200301/gcc/cp/pt.c:1011
0x9939c0 cp_parser_class_head
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200301/work/gcc-10-20200301/gcc/cp/parser.c:24440
0x9939c0 cp_parser_class_specifier_1
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200301/work/gcc-10-20200301/gcc/cp/parser.c:23740
0x9945cb cp_parser_class_specifier
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200301/work/gcc-10-20200301/gcc/cp/parser.c:24109
0x9945cb cp_parser_type_specifier
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200301/work/gcc-10-20200301/gcc/cp/parser.c:17666
0x995655 cp_parser_decl_specifier_seq
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200301/work/gcc-10-20200301/gcc/cp/parser.c:14314
0x9bc908 cp_parser_single_declaration
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200301/work/gcc-10-20200301/gcc/cp/parser.c:29291
0x9bccbb cp_parser_template_declaration_after_parameters
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200301/work/gcc-10-20200301/gcc/cp/parser.c:28954

Reply via email to