https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97874
Bug ID: 97874 Summary: [11 Regression] ICE: tree check: expected record_type or union_type or qual_union_type, have template_type_parm in lookup_using_decl, at cp/name-lookup.c:4652 Product: gcc Version: 11.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++-11.0.0-alpha20201115 snapshot (g:c746fc40f4ec8cfc1092efd49d567751858d2099) ICEs when compiling the following testcase, reduced from test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p8-cxx0x.cpp from the clang 10.0.1 test suite: template <typename UQ> void v4 () { using UQ::kl; } % g++-11.0.0 -c xgk1hrr4.cpp xgk1hrr4.cpp: In function 'void v4()': xgk1hrr4.cpp:5:13: internal compiler error: tree check: expected record_type or union_type or qual_union_type, have template_type_parm in lookup_using_decl, at cp/name-lookup.c:4652 5 | using UQ::kl; | ^~ 0x7e23fc tree_check_failed(tree_node const*, char const*, int, char const*, ...) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201115/work/gcc-11-20201115/gcc/tree.c:9779 0x65fdb7 tree_check3(tree_node*, char const*, int, char const*, tree_code, tree_code, tree_code) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201115/work/gcc-11-20201115/gcc/tree.h:3354 0x65fdb7 lookup_using_decl /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201115/work/gcc-11-20201115/gcc/cp/name-lookup.c:4652 0x9b436f finish_nonmember_using_decl(tree_node*, tree_node*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201115/work/gcc-11-20201115/gcc/cp/name-lookup.c:5152 0x9bcd74 finish_using_decl /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201115/work/gcc-11-20201115/gcc/cp/parser.c:20046 0x9f5256 cp_parser_using_declaration /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201115/work/gcc-11-20201115/gcc/cp/parser.c:20174 0x9f642c cp_parser_declaration_statement /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201115/work/gcc-11-20201115/gcc/cp/parser.c:13342 0x9db3af cp_parser_statement /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201115/work/gcc-11-20201115/gcc/cp/parser.c:11588 0x9dc48d cp_parser_statement_seq_opt /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201115/work/gcc-11-20201115/gcc/cp/parser.c:11954 0x9dc568 cp_parser_compound_statement /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201115/work/gcc-11-20201115/gcc/cp/parser.c:11904 0x9f65a4 cp_parser_function_body /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201115/work/gcc-11-20201115/gcc/cp/parser.c:23551 0x9f65a4 cp_parser_ctor_initializer_opt_and_function_body /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201115/work/gcc-11-20201115/gcc/cp/parser.c:23602 0x9fb049 cp_parser_function_definition_after_declarator /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201115/work/gcc-11-20201115/gcc/cp/parser.c:29492 0x9fc3e9 cp_parser_function_definition_from_specifiers_and_declarator /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201115/work/gcc-11-20201115/gcc/cp/parser.c:29408 0x9fc3e9 cp_parser_init_declarator /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201115/work/gcc-11-20201115/gcc/cp/parser.c:21124 0xa02f5c cp_parser_single_declaration /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201115/work/gcc-11-20201115/gcc/cp/parser.c:29979 0xa030e5 cp_parser_template_declaration_after_parameters /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201115/work/gcc-11-20201115/gcc/cp/parser.c:29552 0xa038b0 cp_parser_explicit_template_declaration /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201115/work/gcc-11-20201115/gcc/cp/parser.c:29817 0xa06429 cp_parser_declaration /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201115/work/gcc-11-20201115/gcc/cp/parser.c:13589 0xa06d49 cp_parser_translation_unit /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201115/work/gcc-11-20201115/gcc/cp/parser.c:4806