libstdc++: Fix regression in hash containers
authorJonathan Wakely <jwakely@redhat.com>
Wed, 26 Aug 2020 16:30:31 +0000 (17:30 +0100)
committerJonathan Wakely <jwakely@redhat.com>
Wed, 26 Aug 2020 16:44:23 +0000 (17:44 +0100)
commit9f9c0549dd42e85e2500ca67cef89dddb142c0c7
tree51a76f6b33ad81457cbacd2d8a14101f9117cf94
parentb6cd5c3786cd3cdaa794574518585caba9822b09
libstdc++: Fix regression in hash containers

A recent change altered the layout of EBO-helper base classes, resulting
in an ambiguity when the hash function and equality predicate are the
same type.

This modifies the type of one of the base classes, so that we don't get
two base classes of the same type.

libstdc++-v3/ChangeLog:

* include/bits/hashtable_policy.h (_Hash_code_base): Change
index of _Hashtable_ebo_helper base class.
* testsuite/23_containers/unordered_map/dup_types.cc: New test.
libstdc++-v3/include/bits/hashtable_policy.h
libstdc++-v3/testsuite/23_containers/unordered_map/dup_types.cc [new file with mode: 0644]