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

            Bug ID: 83529
           Summary: ICE in canonical types differ for identical types
           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: jason at gcc dot gnu.org
  Target Milestone: ---

All releases supporting c++11 ICE with -fchecking:

$ cat ice2.ii
template < typename d, typename > using g = d;
template < typename d, typename e > auto h(d, e ) -> g< d, e >;
template < long, typename > class i;
template < unsigned long j, unsigned b, typename k >
constexpr i< h(j, b), k > h();
template < unsigned long j, unsigned b, typename k >
constexpr i< h(j, b), k > h();

$ g++ ice2.ii -fchecking
ice2.ii:7:29: internal compiler error: canonical types differ for identical
types ‘i<h(j, b), k>’ and ‘i<h(j, b), k>’
 constexpr i< h(j, b), k > h();
                             ^
0x84cf30 comptypes(tree_node*, tree_node*, int)
        ../../gcc/cp/typeck.c:1480
0x6a2d3b decls_match(tree_node*, tree_node*, bool)
        ../../gcc/cp/decl.c:1046
0x6a30a4 decls_match(tree_node*, tree_node*, bool)
        ../../gcc/cp/decl.c:1112
0x6a3571 duplicate_decls(tree_node*, tree_node*, bool)
        ../../gcc/cp/decl.c:1385
0x73bf01 do_pushdecl
        ../../gcc/cp/name-lookup.c:3035
0x73bf01 pushdecl(tree_node*, bool)
        ../../gcc/cp/name-lookup.c:3160
0x73dc47 do_pushdecl_with_scope
        ../../gcc/cp/name-lookup.c:3987
0x73de2f pushdecl_namespace_level(tree_node*, bool)
        ../../gcc/cp/name-lookup.c:5161
0x7ec434 push_template_decl_real(tree_node*, bool)
        ../../gcc/cp/pt.c:5599
0x6ba1d7 start_decl(cp_declarator const*, cp_decl_specifier_seq*, int,
tree_node*, tree_node*, tree_node**)
        ../../gcc/cp/decl.c:5126
0x777317 cp_parser_init_declarator
        ../../gcc/cp/parser.c:19546
0x77ec1a cp_parser_single_declaration
        ../../gcc/cp/parser.c:27121
0x77ee0c cp_parser_template_declaration_after_parameters
        ../../gcc/cp/parser.c:26723
0x77f79e cp_parser_explicit_template_declaration
        ../../gcc/cp/parser.c:26960
0x77f79e cp_parser_template_declaration_after_export
        ../../gcc/cp/parser.c:26979
0x785b69 cp_parser_declaration
        ../../gcc/cp/parser.c:12685
0x785e9b cp_parser_declaration_seq_opt
        ../../gcc/cp/parser.c:12612
0x7861a0 cp_parser_translation_unit
        ../../gcc/cp/parser.c:4558
0x7861a0 c_parse_file()
        ../../gcc/cp/parser.c:38749
0x8cc956 c_common_parse_file()
        ../../gcc/c-family/c-opts.c:1127

Reply via email to