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

--- Comment #8 from Alexander Lelyakin <alexander.lelyakin at googlemail dot 
com> ---
Interesting: There is a pair of system headers
 <condition_variable> and <future> 
Almost any sequence of system headers having condition_variable and ending at
future will produce Segmentation fault

With parameter --param=hash-table-verification-limit=10000000
this pair produces hashtab_chk_error instead of Segmentation fault.

So probably for some or all or most of sequences producing "Segmentation fault"
the reason in somewhere in hashtab?
----
/usr/local/bin/g++ --param=hash-table-verification-limit=10000000 -std=c++20
-fmodules-ts -x c++-system-header condition_variable
/usr/local/bin/g++ --param=hash-table-verification-limit=10000000 -std=c++20
-fmodules-ts -x c++-system-header future
----
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/future:43:
/usr/local/include/c++/11.0.1/bits/atomic_futex.h:77:5: internal compiler
error: in hashtab_chk_error, at hash-table.c:137
   77 |     atomic<unsigned> _M_data;
      |     ^~~~~~
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
0xa78558 lazy_load_binding(unsigned int, tree_node*, tree_node*, binding_slot*)
        ../../gcc/gcc/cp/module.cc:18773
0xa8a17e name_lookup::search_namespace_only(tree_node*)
        ../../gcc/gcc/cp/name-lookup.c:928
0xa8b7cb name_lookup::search_unqualified(tree_node*, cp_binding_level*)
        ../../gcc/gcc/cp/name-lookup.c:1158
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.
----
At commit: 784de5292c34e287c848b382b431599b818ea76e

Reply via email to