diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2019-10-23 17:14:28 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2019-10-23 17:14:28 +0100 |
commit | 603aec6775d5191fafd57412364578db68432f74 (patch) | |
tree | eecdf7326f959268b1d3a3dc997d14369a6b8f5a /libstdc++-v3/testsuite | |
parent | 2ccbd21ded6eae4e099ccb1b5952dd3337875087 (diff) | |
download | gcc-603aec6775d5191fafd57412364578db68432f74.zip gcc-603aec6775d5191fafd57412364578db68432f74.tar.gz gcc-603aec6775d5191fafd57412364578db68432f74.tar.bz2 |
Adjust extension types to use allocator_traits
This makes these extensions work with types meeting the Cpp17Allocator
requirements as well as the C++98 Allocator requirements.
* include/backward/hash_set (hash_set): Use __alloc_traits.
* include/backward/hashtable.h (_Hashtable): Likewise.
* include/ext/alloc_traits.h (__alloc_traits::allocate): Add overload
taking a hint.
* include/ext/extptr_allocator.h (_ExtPtr_allocator::allocate): Ignore
hint.
* include/ext/slist (_Slist_base): Use __alloc_traits.
* include/tr1/hashtable.h (_Hashtable): Likewise.
* include/tr1/regex (match_results): Use vector::const_reference
instead of assuming the allocator defines it.
* testsuite/backward/hash_map/23528.cc: Use allocator_traits in C++11.
* testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc: Use
__gnu_test::max_size.
* testsuite/tr1/6_containers/unordered_multimap/capacity/
29134-multimap.cc: Likewise.
* testsuite/tr1/6_containers/unordered_multiset/capacity/
29134-multiset.cc: Likewise.
* testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc:
Likewise.
From-SVN: r277335
Diffstat (limited to 'libstdc++-v3/testsuite')
5 files changed, 19 insertions, 9 deletions
diff --git a/libstdc++-v3/testsuite/backward/hash_map/23528.cc b/libstdc++-v3/testsuite/backward/hash_map/23528.cc index 01ff4bb..712a65d 100644 --- a/libstdc++-v3/testsuite/backward/hash_map/23528.cc +++ b/libstdc++-v3/testsuite/backward/hash_map/23528.cc @@ -30,9 +30,13 @@ void test01() __gnu_cxx::hash_map<int, int>::value_type *y = a.allocate(1); +#if __cplusplus >= 201103L + std::allocator_traits<decltype(a)>::construct(a, y, *m.begin()); + std::allocator_traits<decltype(a)>::destroy(a, y); +#else a.construct(y, *m.begin()); - a.destroy(y); +#endif a.deallocate(y, 1); } diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc index 78febb0..0e01c04 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc @@ -19,14 +19,16 @@ #include <tr1/unordered_map> #include <testsuite_hooks.h> +#include <testsuite_allocator.h> // libstdc++/29134 void test01() { std::tr1::unordered_map<int, int> um; - VERIFY( (um.max_size() == std::allocator<std::tr1::__detail::_Hash_node< - std::pair<const int, int>, false> >().max_size())); + std::allocator<std::tr1::__detail::_Hash_node<std::pair<const int, int>, + false> > a; + VERIFY( um.max_size() == __gnu_test::max_size(a) ); } int main() diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc index 6695fb9..f38c8df 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc @@ -19,14 +19,16 @@ #include <tr1/unordered_map> #include <testsuite_hooks.h> +#include <testsuite_allocator.h> // libstdc++/29134 void test01() { std::tr1::unordered_multimap<int, int> umm; - VERIFY( (umm.max_size() == std::allocator<std::tr1::__detail::_Hash_node< - std::pair<const int, int>, false> >().max_size()) ); + std::allocator<std::tr1::__detail::_Hash_node<std::pair<const int, int>, + false> > a; + VERIFY( umm.max_size() == __gnu_test::max_size(a) ); } int main() diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc index e9da207..01a2c00 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc @@ -19,14 +19,15 @@ #include <tr1/unordered_set> #include <testsuite_hooks.h> +#include <testsuite_allocator.h> // libstdc++/29134 void test01() { std::tr1::unordered_multiset<int> ums; - VERIFY( (ums.max_size() == std::allocator<std::tr1::__detail::_Hash_node< - int, false> >().max_size()) ); + std::allocator<std::tr1::__detail::_Hash_node<int, false> > a; + VERIFY( ums.max_size() == __gnu_test::max_size(a) ); } int main() diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc index 2080aaa..5dd1332 100644 --- a/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc @@ -19,14 +19,15 @@ #include <tr1/unordered_set> #include <testsuite_hooks.h> +#include <testsuite_allocator.h> // libstdc++/29134 void test01() { std::tr1::unordered_set<int> us; - VERIFY( (us.max_size() == std::allocator<std::tr1::__detail::_Hash_node< - int, false> >().max_size()) ); + std::allocator<std::tr1::__detail::_Hash_node<int, false> > a; + VERIFY( us.max_size() == __gnu_test::max_size(a) ); } int main() |