https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92450
Bug ID: 92450 Summary: [10 Regression] ICE: tree check: expected tree that contains 'decl minimal' structure, have 'error_mark' in cp_parser_member_declaration, at cp/parser.c:25055 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.0-alpha20191110 snapshot (r278028) ICEs when compiling the following testcase reduced from test/SemaCXX/nested-name-spec.cpp from the clang 9.0.0 testsuite: typedef int C2; struct B1 { struct B2 { }; }; struct S6g { C2 : B1:B2; }; % g++-10.0.0-alpha20191110 -std=c++2a -c bjooa7xf.cpp bjooa7xf.cpp:8:6: error: found ':' in nested-name-specifier, expected '::' 8 | C2 : B1:B2; | ^ | :: bjooa7xf.cpp:8:6: error: invalid use of '::' bjooa7xf.cpp:8:8: internal compiler error: tree check: expected tree that contains 'decl minimal' structure, have 'error_mark' in cp_parser_member_declaration, at cp/parser.c:25055 8 | C2 : B1:B2; | ^~ 0x76a10a tree_contains_struct_check_failed(tree_node const*, tree_node_structure_enum, char const*, int, char const*) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191110/work/gcc-10-20191110/gcc/tree.c:9859 0x628ef8 contains_struct_check(tree_node*, tree_node_structure_enum, char const*, int, char const*) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191110/work/gcc-10-20191110/gcc/tree.h:3386 0x628ef8 cp_parser_member_declaration /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191110/work/gcc-10-20191110/gcc/cp/parser.c:25055 0x8ed788 cp_parser_member_specification_opt /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191110/work/gcc-10-20191110/gcc/cp/parser.c:24558 0x8ed788 cp_parser_class_specifier_1 /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191110/work/gcc-10-20191110/gcc/cp/parser.c:23658 0x8ef662 cp_parser_class_specifier /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191110/work/gcc-10-20191110/gcc/cp/parser.c:23965 0x8ef662 cp_parser_type_specifier /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191110/work/gcc-10-20191110/gcc/cp/parser.c:17566 0x8f0516 cp_parser_decl_specifier_seq /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191110/work/gcc-10-20191110/gcc/cp/parser.c:14239 0x8f1164 cp_parser_simple_declaration /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191110/work/gcc-10-20191110/gcc/cp/parser.c:13502 0x91749a cp_parser_declaration /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191110/work/gcc-10-20191110/gcc/cp/parser.c:13322 0x9179ad cp_parser_translation_unit /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191110/work/gcc-10-20191110/gcc/cp/parser.c:4721 0x9179ad c_parse_file() /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191110/work/gcc-10-20191110/gcc/cp/parser.c:42900 0xa1a0d9 c_common_parse_file() /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191110/work/gcc-10-20191110/gcc/c-family/c-opts.c:1183