This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]