https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88986

            Bug ID: 88986
           Summary: [9 Regression] ICE: tree check: expected tree that
                    contains 'decl minimal' structure, have 'error_mark'
                    in member_vec_binary_search, at cp/name-lookup.c:1136
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---

g++-9.0.0-alpha20190120 snapshot (r268107) ICEs when compiling the following
testcase extracted from test/SemaTemplate/cxx1z-using-declaration.cpp from the
clang 7.0.1 testsuite:

template<typename ...T> struct C : T... {
  using typename T::type ...;
  void f() { type value; }
};

% g++-9.0.0-alpha20190120 -std=c++17 -c fw9hmgfi.cpp
fw9hmgfi.cpp:1:32: error: 'T ...' is not a class
    1 | template<typename ...T> struct C : T... {
      |                                ^
fw9hmgfi.cpp:1:32: error: 'T ...' is not a class
fw9hmgfi.cpp: In member function 'void C<T>::f()':
fw9hmgfi.cpp:3:12: internal compiler error: tree check: expected tree that
contains 'decl minimal' structure, have 'error_mark' in
member_vec_binary_search, at cp/name-lookup.c:1136
    3 |   void f() { type value; }
      |            ^
0x7c442d tree_contains_struct_check_failed(tree_node const*,
tree_node_structure_enum, char const*, int, char const*)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/tree.c:9985
0x615e3d contains_struct_check(tree_node*, tree_node_structure_enum, char
const*, int, char const*)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/tree.h:3290
0x615e3d member_vec_binary_search
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/name-lookup.c:1136
0x615e3d get_class_binding_direct(tree_node*, tree_node*, int)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/name-lookup.c:1233
0xa1e9f6 lookup_field_r
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/search.c:980
0xa1dc7d dfs_walk_all(tree_node*, tree_node* (*)(tree_node*, void*), tree_node*
(*)(tree_node*, void*), void*)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/search.c:1420
0xa1de56 lookup_member(tree_node*, tree_node*, int, bool, int,
access_failure_info*)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/search.c:1137
0x96f9e5 get_class_binding
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/name-lookup.c:4449
0x97470f outer_binding(tree_node*, cxx_binding*, bool)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/name-lookup.c:6327
0x97495f innermost_non_namespace_value(tree_node*)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/name-lookup.c:6364
0x9ca857 check_template_shadow(tree_node*)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/pt.c:4135
0x97bc77 do_pushdecl
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/name-lookup.c:3072
0x97bc77 pushdecl(tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/name-lookup.c:3162
0x90234e store_parm_decls
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/decl.c:15640
0x90234e start_preparsed_function(tree_node*, tree_node*, int)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/decl.c:15514
0x9bc36f cp_parser_late_parsing_for_member
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:28497
0x99aaf2 cp_parser_class_specifier_1
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:23509
0x99bb18 cp_parser_class_specifier
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:23535
0x99bb18 cp_parser_type_specifier
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:17356
0x99cad0 cp_parser_decl_specifier_seq
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:14049

Reply via email to