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