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

            Bug ID: 108206
           Summary: ICE: tree check: expected tree that contains 'decl
                    minimal' structure, have 'error_mark' in
                    merge_default_template_args, at cp/decl.cc:1563
           Product: gcc
           Version: 13.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: ---

gcc 13.0.0 20221218 snapshot (g:fd69977febf399d1992bbf8d66ae9170e0a4dc9f) ICEs
when compiling the following testcase:

template <WrongType _IsMove, typename T1> void foo (T1);
template <WrongType _IsMove, typename T2> void foo (T2);

% g++-13 -c vph5xonf.cc
vph5xonf.cc:1:11: error: 'WrongType' has not been declared
    1 | template <WrongType _IsMove, typename T1> void foo (T1);
      |           ^~~~~~~~~
vph5xonf.cc:2:11: error: 'WrongType' has not been declared
    2 | template <WrongType _IsMove, typename T2> void bar (T2);
      |           ^~~~~~~~~
zsh: exit 1     g++-13 -c vph5xonf.cc
asolokha@czc101b91d ~/t1 % g++-13 -c vph5xonf.cc
vph5xonf.cc:1:11: error: 'WrongType' has not been declared
    1 | template <WrongType _IsMove, typename T1> void foo (T1);
      |           ^~~~~~~~~
vph5xonf.cc:2:11: error: 'WrongType' has not been declared
    2 | template <WrongType _IsMove, typename T2> void foo (T2);
      |           ^~~~~~~~~
vph5xonf.cc:2:55: error: redefinition of default argument for '<declaration
error>'
    2 | template <WrongType _IsMove, typename T2> void foo (T2);
      |                                                       ^
vph5xonf.cc:2:55: internal compiler error: tree check: expected tree that
contains 'decl minimal' structure, have 'error_mark' in
merge_default_template_args, at cp/decl.cc:1563
0x88468e tree_contains_struct_check_failed(tree_node const*,
tree_node_structure_enum, char const*, int, char const*)
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/tree.cc:8996
0x6d185d contains_struct_check(tree_node*, tree_node_structure_enum, char
const*, int, char const*)
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/tree.h:3642
0x6d185d merge_default_template_args(tree_node*, tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/cp/decl.cc:1563
0x9ff720 duplicate_decls(tree_node*, tree_node*, bool, bool)
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/cp/decl.cc:2371
0xabdd4c pushdecl(tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/cp/name-lookup.cc:3686
0xabf011 do_pushdecl_with_scope
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/cp/name-lookup.cc:4769
0xabf23b pushdecl_namespace_level(tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/cp/name-lookup.cc:6125
0xb70268 push_template_decl(tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/cp/pt.cc:6128
0xa0d399 start_decl(cp_declarator const*, cp_decl_specifier_seq*, int,
tree_node*, tree_node*, tree_node**)
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/cp/decl.cc:5908
0xb10835 cp_parser_init_declarator
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/cp/parser.cc:22854
0xb18d5e cp_parser_single_declaration
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/cp/parser.cc:32459
0xb18f4c cp_parser_template_declaration_after_parameters
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/cp/parser.cc:32012
0xb19860 cp_parser_explicit_template_declaration
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/cp/parser.cc:32285
0xb1c504 cp_parser_declaration
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/cp/parser.cc:14959
0xb1d051 cp_parser_toplevel_declaration
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/cp/parser.cc:15051
0xb1d051 cp_parser_translation_unit
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/cp/parser.cc:5090
0xb1d051 c_parse_file()
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/cp/parser.cc:49389
0xc5d681 c_common_parse_file()
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/c-family/c-opts.cc:1248

Reply via email to