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

            Bug ID: 80309
           Summary: [7 Regression] ICE: canonical types differ for
                    identical types _Args2 and _Args2
           Product: gcc
           Version: 7.0.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: trippels at gcc dot gnu.org
  Target Milestone: ---

A very recent regression:

markus@x4 gcc % g++ -c -std=gnu++17 -mavx2
./libstdc++-v3/testsuite/20_util/pair/cons/deduction.cc
./libstdc++-v3/testsuite/20_util/pair/cons/deduction.cc: In function ‘void
test01()’:
./libstdc++-v3/testsuite/20_util/pair/cons/deduction.cc:50:30: internal
compiler error: canonical types differ for identical types _Args2 and _Args2
   std::pair mo{MoveOnly(), 2l};
                              ^
0x7331ea comptypes(tree_node*, tree_node*, int)
        /home/markus/gcc/gcc/cp/typeck.c:1433
0x629005 template_args_equal(tree_node*, tree_node*, bool)
        /home/markus/gcc/gcc/cp/pt.c:8300
0x628f62 template_args_equal(tree_node*, tree_node*, bool)
        /home/markus/gcc/gcc/cp/pt.c:8257
0x62909a template_args_equal(tree_node*, tree_node*, bool)
        /home/markus/gcc/gcc/cp/pt.c:8275
0x628caf comp_template_args(tree_node*, tree_node*, tree_node**, tree_node**,
bool)
        /home/markus/gcc/gcc/cp/pt.c:8348
0x6357a9 spec_hasher::equal(spec_entry*, spec_entry*)
        /home/markus/gcc/gcc/cp/pt.c:1660
0x68def6 hash_table<spec_hasher, xcallocator>::find_with_hash(spec_entry*
const&, unsigned int)
        /home/markus/gcc/gcc/hash-table.h:856
0x66e9dd lookup_template_class_1
        /home/markus/gcc/gcc/cp/pt.c:8696
0x66e9dd lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*,
int, int)
        /home/markus/gcc/gcc/cp/pt.c:9009
0x671f48 tsubst_aggr_type
        /home/markus/gcc/gcc/cp/pt.c:11905
0x643e03 tsubst(tree_node*, tree_node*, int, tree_node*)
        /home/markus/gcc/gcc/cp/pt.c:13405
0x644188 tsubst(tree_node*, tree_node*, int, tree_node*)
        /home/markus/gcc/gcc/cp/pt.c:13395
0x65bb67 tsubst_arg_types
        /home/markus/gcc/gcc/cp/pt.c:13007
0x65ba45 tsubst_arg_types
        /home/markus/gcc/gcc/cp/pt.c:12976
0x65e512 build_deduction_guide
        /home/markus/gcc/gcc/cp/pt.c:25133
0x63c031 do_class_deduction
        /home/markus/gcc/gcc/cp/pt.c:25225
0x63c031 do_auto_deduction(tree_node*, tree_node*, tree_node*, int,
auto_deduction_context, tree_node*, int)
        /home/markus/gcc/gcc/cp/pt.c:25331
0x615ca7 cp_finish_decl(tree_node*, tree_node*, bool, tree_node*, int)
        /home/markus/gcc/gcc/cp/decl.c:6835
0x6f860d cp_parser_init_declarator
        /home/markus/gcc/gcc/cp/parser.c:19380
0x71dc18 cp_parser_simple_declaration
        /home/markus/gcc/gcc/cp/parser.c:12777

Reply via email to