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?

Reply via email to