aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2019-10-23 17:14:28 +0100
committerJonathan Wakely <redi@gcc.gnu.org>2019-10-23 17:14:28 +0100
commit603aec6775d5191fafd57412364578db68432f74 (patch)
treeeecdf7326f959268b1d3a3dc997d14369a6b8f5a /libstdc++-v3/testsuite
parent2ccbd21ded6eae4e099ccb1b5952dd3337875087 (diff)
downloadgcc-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')
-rw-r--r--libstdc++-v3/testsuite/backward/hash_map/23528.cc6
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc6
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc6
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc5
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc5
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()