This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/82424] New: [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
- From: "marxin at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 04 Oct 2017 08:18:05 +0000
- Subject: [Bug c++/82424] New: [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
- Auto-submitted: auto-generated
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