https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82424
Bug ID: 82424 Summary: [8 Regression] ICE in tree check: expected record_type or union_type or qual_union_type, have typename_type in lookup_base, at cp/search.c:203 Product: gcc Version: unknown Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: nathan at gcc dot gnu.org Target Milestone: --- Following snippet started to ICE since r248123: $ cat ice.ii template <typename> class a { struct b; template <typename, typename> void c (); }; template <typename d> template <typename, typename> void a<d>::c () { typedef typename d::b b; } g++ ice.ii -c -Wshadow=compatible-local ice.ii: In member function ‘void a< <template-parameter-1-1> >::c()’: ice.ii:11:25: internal compiler error: tree check: expected record_type or union_type or qual_union_type, have typename_type in lookup_base, at cp/search.c:195 typedef typename d::b b; ^ 0x5d4232 tree_check_failed(tree_node const*, char const*, int, char const*, ...) ../../gcc/tree.c:9080 0x7f9788 tree_check3(tree_node*, char const*, int, char const*, tree_code, tree_code, tree_code) ../../gcc/tree.h:3144 0x7f9788 lookup_base(tree_node*, tree_node*, int, base_kind*, int) ../../gcc/cp/search.c:195 0x606db3 build_user_type_conversion_1 ../../gcc/cp/call.c:3735 0x60855b implicit_conversion ../../gcc/cp/call.c:1897 0x60d906 can_convert_arg(tree_node*, tree_node*, tree_node*, int, int) ../../gcc/cp/call.c:10496 0x73278b check_local_shadow ../../gcc/cp/name-lookup.c:2725 0x73278b do_pushdecl ../../gcc/cp/name-lookup.c:3057 0x73278b pushdecl(tree_node*, bool) ../../gcc/cp/name-lookup.c:3120 0x6ae405 start_decl(cp_declarator const*, cp_decl_specifier_seq*, int, tree_node*, tree_node*, tree_node**) ../../gcc/cp/decl.c:5083 0x76d747 cp_parser_init_declarator ../../gcc/cp/parser.c:19490 0x774f2c cp_parser_simple_declaration ../../gcc/cp/parser.c:13000 0x775e38 cp_parser_block_declaration ../../gcc/cp/parser.c:12825 0x776909 cp_parser_declaration_statement ../../gcc/cp/parser.c:12419 0x750e93 cp_parser_statement ../../gcc/cp/parser.c:10897 0x751fa0 cp_parser_statement_seq_opt ../../gcc/cp/parser.c:11234 0x752077 cp_parser_compound_statement ../../gcc/cp/parser.c:11188 0x76b8f8 cp_parser_function_body ../../gcc/cp/parser.c:21669 0x76b8f8 cp_parser_ctor_initializer_opt_and_function_body ../../gcc/cp/parser.c:21707 0x76d25a cp_parser_function_definition_after_declarator ../../gcc/cp/parser.c:26605