[Bug c++/99861] [modules] ICE in hashtab_chk_error

alexander.lelyakin at googlemail dot com gcc-bugzilla@gcc.gnu.org
Fri Apr 16 13:05:17 GMT 2021


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

--- Comment #9 from Alexander Lelyakin <alexander.lelyakin at googlemail dot com> ---
The same happens with the ICE in add_mergeable_specialization, PR99948,
http://lelyakin.de/modules/in%20add_mergeable_specialization/016_7ae8737cc3d793d796faedfe5de5d89d42b966b5/

After adding parameter --param=hash-table-verification-limit=1000
the error was transformed to:

hash table checking failed: equal operator returns true for a pair of values
with a different hash value
In file included from /usr/local/include/c++/11.0.1/memory:68,
                 from /usr/local/include/c++/11.0.1/regex:45:
/usr/local/include/c++/11.0.1/bits/stl_raw_storage_iter.h: In destructor
‘constexpr std::allocator< <template-parameter-1-1> >::~allocator() [with _Tp =
char32_t]’:
/usr/local/include/c++/11.0.1/bits/stl_raw_storage_iter.h:95:58: internal
compiler error: in hashtab_chk_error, at hash-table.c:137
   95 |         std::_Construct(std::__addressof(*_M_iter),
std::move(__element));
      |                                                          ^~~~
0x92f671 hashtab_chk_error()
        ../../gcc/gcc/hash-table.c:137
0xb3ec35 hash_table<spec_hasher, false, xcallocator>::verify(spec_entry*
const&, unsigned int)
        ../../gcc/gcc/hash-table.h:1033
0xb3f1be hash_table<spec_hasher, false,
xcallocator>::find_slot_with_hash(spec_entry* const&, unsigned int,
insert_option)
        ../../gcc/gcc/hash-table.h:968
0xafbd2b match_mergeable_specialization(bool, spec_entry*)
        ../../gcc/gcc/cp/pt.c:30034
0xa74e18 trees_in::key_mergeable(int, merge_kind, tree_node*, tree_node*,
tree_node*, tree_node*, bool)
        ../../gcc/gcc/cp/module.cc:10670
0xa78a14 trees_in::decl_value()
        ../../gcc/gcc/cp/module.cc:7903
0xa71877 trees_in::tree_node(bool)
        ../../gcc/gcc/cp/module.cc:9153
0xa77e9b module_state::read_cluster(unsigned int)
        ../../gcc/gcc/cp/module.cc:14811
0xa7839d module_state::load_section(unsigned int, binding_slot*)
        ../../gcc/gcc/cp/module.cc:18082
0xa7845f module_state::lazy_load(unsigned int, binding_slot*)
        ../../gcc/gcc/cp/module.cc:18740
0xa726e0 trees_in::tree_node(bool)
        ../../gcc/gcc/cp/module.cc:9664
0xa77b9b module_state::read_cluster(unsigned int)
        ../../gcc/gcc/cp/module.cc:14717
0xa7839d module_state::load_section(unsigned int, binding_slot*)
        ../../gcc/gcc/cp/module.cc:18082
0xa7845f module_state::lazy_load(unsigned int, binding_slot*)
        ../../gcc/gcc/cp/module.cc:18740
0xa726e0 trees_in::tree_node(bool)
        ../../gcc/gcc/cp/module.cc:9664
0xa77b9b module_state::read_cluster(unsigned int)
        ../../gcc/gcc/cp/module.cc:14717
0xa7839d module_state::load_section(unsigned int, binding_slot*)
        ../../gcc/gcc/cp/module.cc:18082
0xa7845f module_state::lazy_load(unsigned int, binding_slot*)
        ../../gcc/gcc/cp/module.cc:18740
0xa7b5b7 lazy_load_pendings(tree_node*)
        ../../gcc/gcc/cp/module.cc:18833
0xa83d58 maybe_lazily_declare
        ../../gcc/gcc/cp/name-lookup.c:1912
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

However this parameter significantly slows compilation.

And already two weeks this report remains unassigned...


More information about the Gcc-bugs mailing list