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

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


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

--- Comment #3 from Alexander Lelyakin <alexander.lelyakin at googlemail dot com> ---
There is a shorter sequence:

/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header map
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header clocale
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header regex
----
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/bits/unique_ptr.h:42,
                 from /usr/local/include/c++/11.0.1/bits/locale_conv.h:41,
                 from /usr/local/include/c++/11.0.1/locale:43,
                 from /usr/local/include/c++/11.0.1/regex:44:
/usr/local/include/c++/11.0.1/ostream: In substitution of ‘template<class
_Ostream, class _Tp> typename
std::enable_if<std::__and_<std::__not_<std::is_lvalue_reference<_Tp> >,
std::__is_convertible_to_basic_ostream<_Ostream>, std::__is_insertable<typename
std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type, const _Tp&, void>
>::value, typename
std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type>::type
std::operator<<(_Ostream&&, const _Tp&) [with _Ostream = int; _Tp =
std::regex_constants::__syntax_option]’:
/usr/local/include/c++/11.0.1/bits/regex_constants.h:88:42:   required from
here
/usr/local/include/c++/11.0.1/ostream:773:5: internal compiler error: in
hashtab_chk_error, at hash-table.c:137
  773 |     operator<<(_Ostream&& __os, const _Tp& __x)
      |     ^~~~~~~~
0x92f047 hashtab_chk_error()
        ../../gcc/gcc/hash-table.c:137
0xb3ddf5 hash_table<spec_hasher, false, xcallocator>::verify(spec_entry*
const&, unsigned int)
        ../../gcc/gcc/hash-table.h:1033
0xb3e37e hash_table<spec_hasher, false,
xcallocator>::find_slot_with_hash(spec_entry* const&, unsigned int,
insert_option)
        ../../gcc/gcc/hash-table.h:968
0xafb10b match_mergeable_specialization(bool, spec_entry*)
        ../../gcc/gcc/cp/pt.c:29961
0xa74528 trees_in::key_mergeable(int, merge_kind, tree_node*, tree_node*,
tree_node*, tree_node*, bool)
        ../../gcc/gcc/cp/module.cc:10670
0xa78124 trees_in::decl_value()
        ../../gcc/gcc/cp/module.cc:7903
0xa70f87 trees_in::tree_node(bool)
        ../../gcc/gcc/cp/module.cc:9153
0xa70ef9 trees_in::tree_node(bool)
        ../../gcc/gcc/cp/module.cc:9203
0xa7182d trees_in::tree_node(bool)
        ../../gcc/gcc/cp/module.cc:9346
0xa72987 trees_in::core_vals(tree_node*)
        ../../gcc/gcc/cp/module.cc:6537
0xa781f9 trees_in::tree_node_vals(tree_node*)
        ../../gcc/gcc/cp/module.cc:7061
0xa781f9 trees_in::decl_value()
        ../../gcc/gcc/cp/module.cc:7942
0xa70f87 trees_in::tree_node(bool)
        ../../gcc/gcc/cp/module.cc:9153
0xa775ab module_state::read_cluster(unsigned int)
        ../../gcc/gcc/cp/module.cc:14811
0xa77aad module_state::load_section(unsigned int, binding_slot*)
        ../../gcc/gcc/cp/module.cc:18082
0xa77b6f module_state::lazy_load(unsigned int, binding_slot*)
        ../../gcc/gcc/cp/module.cc:18740
0xa71df0 trees_in::tree_node(bool)
        ../../gcc/gcc/cp/module.cc:9664
0xa772ab module_state::read_cluster(unsigned int)
        ../../gcc/gcc/cp/module.cc:14717
0xa77aad module_state::load_section(unsigned int, binding_slot*)
        ../../gcc/gcc/cp/module.cc:18082
0xa77b6f module_state::lazy_load(unsigned int, binding_slot*)
        ../../gcc/gcc/cp/module.cc:18740
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.
----
g++ (GCC) 11.0.1 20210409 (experimental)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


More information about the Gcc-bugs mailing list