https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87847
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|marxin at gcc dot gnu.org |jason at gcc dot gnu.org
--- Comment #9 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to Martin Liška from comment #8)
> So the issue is still present:
> https://gcc.gnu.org/ml/gcc-regression/2019-06/msg00144.html
>
> I'm testing:
> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46387&action=diff right now
So with patch I still see couple of ICEs remaining:
FAIL: g++.dg/cpp0x/udlit-template.C -std=c++14 (internal compiler error)
FAIL: g++.dg/cpp0x/udlit-template.C -std=c++14 (test for excess errors)
FAIL: g++.dg/cpp0x/udlit-template.C -std=c++17 (internal compiler error)
FAIL: g++.dg/cpp0x/udlit-template.C -std=c++17 (test for excess errors)
FAIL: g++.dg/cpp0x/variadic98.C -std=c++17 (internal compiler error)
FAIL: g++.dg/cpp0x/variadic98.C -std=c++17 (test for excess errors)
FAIL: g++.dg/cpp1y/feat-cxx14.C (test for excess errors)
FAIL: g++.dg/cpp1z/feat-cxx1z.C -std=gnu++17 (test for excess errors)
FAIL: g++.dg/cpp1z/pr85569.C -std=c++17 (test for excess errors)
FAIL: g++.dg/cpp2a/feat-cxx2a.C (test for excess errors)
FAIL: g++.dg/tm/pr46646.C -std=gnu++14 (internal compiler error)
FAIL: g++.dg/tm/pr46646.C -std=gnu++14 (test for excess errors)
One reduced test-case:
$ cat 1.ii
template <char...> int operator"" _abc();
template <> int operator"" _abc();
$ ./xg++ -B. 1.ii -c
hash table checking failed: equal operator returns true for a pair of values
with a different hash value
1.ii:2:33: internal compiler error: in hashtab_chk_error, at hash-table.h:1022
2 | template <> int operator"" _abc();
| ^
0xaf623e hashtab_chk_error
/home/marxin/Programming/gcc/gcc/hash-table.h:1022
0xb83ef9 hash_table<spec_hasher, false,
xcallocator>::find_slot_with_hash(spec_entry* const&, unsigned int,
insert_option)
/home/marxin/Programming/gcc/gcc/hash-table.h:963
0xafe5d8 register_specialization
/home/marxin/Programming/gcc/gcc/cp/pt.c:1566
0xb05860 check_explicit_specialization(tree_node*, tree_node*, int, int,
tree_node*)
/home/marxin/Programming/gcc/gcc/cp/pt.c:3237
0x9aa99d grokfndecl
/home/marxin/Programming/gcc/gcc/cp/decl.c:9218
0x9b6999 grokdeclarator(cp_declarator const*, cp_decl_specifier_seq*,
decl_context, int, tree_node**)
/home/marxin/Programming/gcc/gcc/cp/decl.c:12803
0x9993f2 start_decl(cp_declarator const*, cp_decl_specifier_seq*, int,
tree_node*, tree_node*, tree_node**)
/home/marxin/Programming/gcc/gcc/cp/decl.c:5062
0xab7026 cp_parser_init_declarator
/home/marxin/Programming/gcc/gcc/cp/parser.c:20357
0xac6cab cp_parser_single_declaration
/home/marxin/Programming/gcc/gcc/cp/parser.c:28244
0xab0ff7 cp_parser_explicit_specialization
/home/marxin/Programming/gcc/gcc/cp/parser.c:17304
0xaa9bc8 cp_parser_declaration
/home/marxin/Programming/gcc/gcc/cp/parser.c:13168
0xaa9ef4 cp_parser_toplevel_declaration
/home/marxin/Programming/gcc/gcc/cp/parser.c:13251
0xa9719a cp_parser_translation_unit
/home/marxin/Programming/gcc/gcc/cp/parser.c:4690
0xaee97d c_parse_file()
/home/marxin/Programming/gcc/gcc/cp/parser.c:41176
0xcb3987 c_common_parse_file()
/home/marxin/Programming/gcc/gcc/c-family/c-opts.c:1156
I'm planning to disable the sanitization of the 2 hash tables now.
@Jason: can you please take a look at the remaining test-cases?