summaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>2013-11-19 22:03:30 +0000
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>2013-11-19 22:03:30 +0000
commit198d7b78ede581f481041a341a553187bcaf0dfc (patch)
tree312cede16ce78b3c62218e34cebed05e17cef0c4 /libstdc++-v3
parent34154e2725a28db7dfe49b264253c721b84fe36b (diff)
downloadgcc-198d7b78ede581f481041a341a553187bcaf0dfc.tar.gz
* testsuite/23_containers/forward_list/allocator/noexcept.cc: Change
to compile-only test. Adjust swap overload to handle rebound allocators. * testsuite/23_containers/map/allocator/noexcept.cc: Likewise. * testsuite/23_containers/multimap/allocator/noexcept.cc: Likewise. * testsuite/23_containers/multiset/allocator/noexcept.cc: Likewise. * testsuite/23_containers/set/allocator/noexcept.cc: Likewise. * testsuite/23_containers/unordered_map/allocator/noexcept.cc: Likewise. * testsuite/23_containers/unordered_multimap/allocator/noexcept.cc: Likewise. * testsuite/23_containers/unordered_multiset/allocator/noexcept.cc: Likewise. * testsuite/23_containers/unordered_set/allocator/noexcept.cc: Likewise. * testsuite/23_containers/vector/allocator/noexcept.cc: Likewise. * testsuite/23_containers/vector/allocator/swap.cc: Add elements before swapping. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205056 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog21
-rw-r--r--libstdc++-v3/testsuite/23_containers/forward_list/allocator/noexcept.cc24
-rw-r--r--libstdc++-v3/testsuite/23_containers/map/allocator/noexcept.cc23
-rw-r--r--libstdc++-v3/testsuite/23_containers/multimap/allocator/noexcept.cc23
-rw-r--r--libstdc++-v3/testsuite/23_containers/multiset/allocator/noexcept.cc22
-rw-r--r--libstdc++-v3/testsuite/23_containers/set/allocator/noexcept.cc23
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_map/allocator/noexcept.cc24
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/noexcept.cc24
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/noexcept.cc24
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_set/allocator/noexcept.cc24
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/allocator/noexcept.cc22
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/allocator/swap.cc2
12 files changed, 88 insertions, 168 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 946b67f8cfc..27629f9c59d 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,24 @@
+2013-11-19 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * testsuite/23_containers/forward_list/allocator/noexcept.cc: Change
+ to compile-only test. Adjust swap overload to handle rebound
+ allocators.
+ * testsuite/23_containers/map/allocator/noexcept.cc: Likewise.
+ * testsuite/23_containers/multimap/allocator/noexcept.cc: Likewise.
+ * testsuite/23_containers/multiset/allocator/noexcept.cc: Likewise.
+ * testsuite/23_containers/set/allocator/noexcept.cc: Likewise.
+ * testsuite/23_containers/unordered_map/allocator/noexcept.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multimap/allocator/noexcept.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multiset/allocator/noexcept.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_set/allocator/noexcept.cc:
+ Likewise.
+ * testsuite/23_containers/vector/allocator/noexcept.cc: Likewise.
+ * testsuite/23_containers/vector/allocator/swap.cc: Add elements
+ before swapping.
+
2013-11-19 Paolo Carlini <paolo.carlini@oracle.com>
* include/experimental/string_view (_S_max_size): Remove.
diff --git a/libstdc++-v3/testsuite/23_containers/forward_list/allocator/noexcept.cc b/libstdc++-v3/testsuite/23_containers/forward_list/allocator/noexcept.cc
index 0ee16705a91..635fb77bec5 100644
--- a/libstdc++-v3/testsuite/23_containers/forward_list/allocator/noexcept.cc
+++ b/libstdc++-v3/testsuite/23_containers/forward_list/allocator/noexcept.cc
@@ -15,23 +15,21 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
+// { dg-do compile }
// { dg-options "-std=gnu++0x" }
#include <forward_list>
-#include <testsuite_hooks.h>
#include <testsuite_allocator.h>
struct T { int i; };
namespace __gnu_test
{
- inline void
- swap(propagating_allocator<T, true>& l, propagating_allocator<T, true>& r)
- noexcept(false)
- {
- typedef uneq_allocator<T> base_alloc;
- swap(static_cast<base_alloc&>(l), static_cast<base_alloc&>(r));
- }
+ template<typename U>
+ inline void
+ swap(propagating_allocator<U, true>& l, propagating_allocator<U, true>& r)
+ noexcept(false)
+ { }
}
using __gnu_test::propagating_allocator;
@@ -64,13 +62,5 @@ void test03()
test_type v1(alloc_type(1));
test_type v2(alloc_type(2));
static_assert( noexcept( v1 = std::move(v2) ), "Move assign cannot throw" );
- // static_assert( !noexcept( v1.swap(v2) ), "Swap can throw" );
-}
-
-int main()
-{
- test01();
- test02();
- test03();
- return 0;
+ static_assert( !noexcept( v1.swap(v2) ), "Swap can throw" );
}
diff --git a/libstdc++-v3/testsuite/23_containers/map/allocator/noexcept.cc b/libstdc++-v3/testsuite/23_containers/map/allocator/noexcept.cc
index 832a28ab63a..4bd3f5755aa 100644
--- a/libstdc++-v3/testsuite/23_containers/map/allocator/noexcept.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/allocator/noexcept.cc
@@ -15,10 +15,10 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
+// { dg-do compile }
// { dg-options "-std=gnu++11" }
#include <map>
-#include <testsuite_hooks.h>
#include <testsuite_allocator.h>
struct T { int i; };
@@ -31,14 +31,11 @@ struct U { };
namespace __gnu_test
{
- inline void
- swap(propagating_allocator<std::pair<const T, U>, true>& l,
- propagating_allocator<std::pair<const T, U>, true>& r)
- noexcept(false)
- {
- typedef uneq_allocator<std::pair<const T, U>> base_alloc;
- swap(static_cast<base_alloc&>(l), static_cast<base_alloc&>(r));
- }
+ template<typename U>
+ inline void
+ swap(propagating_allocator<U, true>& l, propagating_allocator<U, true>& r)
+ noexcept(false)
+ { }
}
using __gnu_test::propagating_allocator;
@@ -73,11 +70,3 @@ void test03()
static_assert( noexcept( v1 = std::move(v2) ), "Move assign cannot throw" );
static_assert( !noexcept( v1.swap(v2) ), "Swap can throw" );
}
-
-int main()
-{
- test01();
- test02();
- test03();
- return 0;
-}
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/allocator/noexcept.cc b/libstdc++-v3/testsuite/23_containers/multimap/allocator/noexcept.cc
index aee4dc90029..9913acb8632 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/allocator/noexcept.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/allocator/noexcept.cc
@@ -15,10 +15,10 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
+// { dg-do compile }
// { dg-options "-std=gnu++11" }
#include <map>
-#include <testsuite_hooks.h>
#include <testsuite_allocator.h>
struct T { int i; };
@@ -31,14 +31,11 @@ struct U { };
namespace __gnu_test
{
- inline void
- swap(propagating_allocator<std::pair<const T, U>, true>& l,
- propagating_allocator<std::pair<const T, U>, true>& r)
- noexcept(false)
- {
- typedef uneq_allocator<std::pair<const T, U>> base_alloc;
- swap(static_cast<base_alloc&>(l), static_cast<base_alloc&>(r));
- }
+ template<typename U>
+ inline void
+ swap(propagating_allocator<U, true>& l, propagating_allocator<U, true>& r)
+ noexcept(false)
+ { }
}
using __gnu_test::propagating_allocator;
@@ -73,11 +70,3 @@ void test03()
static_assert( noexcept( v1 = std::move(v2) ), "Move assign cannot throw" );
static_assert( !noexcept( v1.swap(v2) ), "Swap can throw" );
}
-
-int main()
-{
- test01();
- test02();
- test03();
- return 0;
-}
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/allocator/noexcept.cc b/libstdc++-v3/testsuite/23_containers/multiset/allocator/noexcept.cc
index 89b0053d4c2..d429313d587 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/allocator/noexcept.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/allocator/noexcept.cc
@@ -15,6 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
+// { dg-do compile }
// { dg-options "-std=gnu++11" }
#include <set>
@@ -29,14 +30,11 @@ using Cmp = std::less<T>;
namespace __gnu_test
{
- inline void
- swap(propagating_allocator<T, true>& l,
- propagating_allocator<T, true>& r)
- noexcept(false)
- {
- typedef uneq_allocator<T> base_alloc;
- swap(static_cast<base_alloc&>(l), static_cast<base_alloc&>(r));
- }
+ template<typename U>
+ inline void
+ swap(propagating_allocator<U, true>& l, propagating_allocator<U, true>& r)
+ noexcept(false)
+ { }
}
using __gnu_test::propagating_allocator;
@@ -71,11 +69,3 @@ void test03()
static_assert( noexcept( v1 = std::move(v2) ), "Move assign cannot throw" );
static_assert( !noexcept( v1.swap(v2) ), "Swap can throw" );
}
-
-int main()
-{
- test01();
- test02();
- test03();
- return 0;
-}
diff --git a/libstdc++-v3/testsuite/23_containers/set/allocator/noexcept.cc b/libstdc++-v3/testsuite/23_containers/set/allocator/noexcept.cc
index 07adbc08013..f8389d6a42f 100644
--- a/libstdc++-v3/testsuite/23_containers/set/allocator/noexcept.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/allocator/noexcept.cc
@@ -15,10 +15,10 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
+// { dg-do compile }
// { dg-options "-std=gnu++11" }
#include <set>
-#include <testsuite_hooks.h>
#include <testsuite_allocator.h>
struct T { int i; };
@@ -29,14 +29,11 @@ using Cmp = std::less<T>;
namespace __gnu_test
{
- inline void
- swap(propagating_allocator<T, true>& l,
- propagating_allocator<T, true>& r)
- noexcept(false)
- {
- typedef uneq_allocator<T> base_alloc;
- swap(static_cast<base_alloc&>(l), static_cast<base_alloc&>(r));
- }
+ template<typename U>
+ inline void
+ swap(propagating_allocator<U, true>& l, propagating_allocator<U, true>& r)
+ noexcept(false)
+ { }
}
using __gnu_test::propagating_allocator;
@@ -71,11 +68,3 @@ void test03()
static_assert( noexcept( v1 = std::move(v2) ), "Move assign cannot throw" );
static_assert( !noexcept( v1.swap(v2) ), "Swap can throw" );
}
-
-int main()
-{
- test01();
- test02();
- test03();
- return 0;
-}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/allocator/noexcept.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/allocator/noexcept.cc
index 47eb61d77fc..64c46f2e12b 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_map/allocator/noexcept.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_map/allocator/noexcept.cc
@@ -15,10 +15,10 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
+// { dg-do compile }
// { dg-options "-std=c++11" }
#include <unordered_map>
-#include <testsuite_hooks.h>
#include <testsuite_allocator.h>
struct T { int i; };
@@ -37,13 +37,11 @@ struct equal_to
namespace __gnu_test
{
- inline void
- swap(propagating_allocator<T, true>& l, propagating_allocator<T, true>& r)
- noexcept(false)
- {
- typedef uneq_allocator<T> base_alloc;
- swap(static_cast<base_alloc&>(l), static_cast<base_alloc&>(r));
- }
+ template<typename U>
+ inline void
+ swap(propagating_allocator<U, true>& l, propagating_allocator<U, true>& r)
+ noexcept(false)
+ { }
}
using __gnu_test::propagating_allocator;
@@ -76,13 +74,5 @@ void test03()
test_type v1(alloc_type(1));
test_type v2(alloc_type(2));
static_assert( noexcept( v1 = std::move(v2) ), "Move assign cannot throw" );
- // static_assert( !noexcept( v1.swap(v2) ), "Swap can throw" );
-}
-
-int main()
-{
- test01();
- test02();
- test03();
- return 0;
+ static_assert( !noexcept( v1.swap(v2) ), "Swap can throw" );
}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/noexcept.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/noexcept.cc
index de16cbd25e8..fe6fc6e0c72 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/noexcept.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/noexcept.cc
@@ -15,10 +15,10 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
+// { dg-do compile }
// { dg-options "-std=c++11" }
#include <unordered_map>
-#include <testsuite_hooks.h>
#include <testsuite_allocator.h>
struct T { int i; };
@@ -37,13 +37,11 @@ struct equal_to
namespace __gnu_test
{
- inline void
- swap(propagating_allocator<T, true>& l, propagating_allocator<T, true>& r)
- noexcept(false)
- {
- typedef uneq_allocator<T> base_alloc;
- swap(static_cast<base_alloc&>(l), static_cast<base_alloc&>(r));
- }
+ template<typename U>
+ inline void
+ swap(propagating_allocator<U, true>& l, propagating_allocator<U, true>& r)
+ noexcept(false)
+ { }
}
using __gnu_test::propagating_allocator;
@@ -76,13 +74,5 @@ void test03()
test_type v1(alloc_type(1));
test_type v2(alloc_type(2));
static_assert( noexcept( v1 = std::move(v2) ), "Move assign cannot throw" );
- // static_assert( !noexcept( v1.swap(v2) ), "Swap can throw" );
-}
-
-int main()
-{
- test01();
- test02();
- test03();
- return 0;
+ static_assert( !noexcept( v1.swap(v2) ), "Swap can throw" );
}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/noexcept.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/noexcept.cc
index 5d69e0768ce..2c7e853891f 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/noexcept.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/noexcept.cc
@@ -15,10 +15,10 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
+// { dg-do compile }
// { dg-options "-std=c++11" }
#include <unordered_set>
-#include <testsuite_hooks.h>
#include <testsuite_allocator.h>
struct T { int i; };
@@ -37,13 +37,11 @@ struct equal_to
namespace __gnu_test
{
- inline void
- swap(propagating_allocator<T, true>& l, propagating_allocator<T, true>& r)
- noexcept(false)
- {
- typedef uneq_allocator<T> base_alloc;
- swap(static_cast<base_alloc&>(l), static_cast<base_alloc&>(r));
- }
+ template<typename U>
+ inline void
+ swap(propagating_allocator<U, true>& l, propagating_allocator<U, true>& r)
+ noexcept(false)
+ { }
}
using __gnu_test::propagating_allocator;
@@ -76,13 +74,5 @@ void test03()
test_type v1(alloc_type(1));
test_type v2(alloc_type(2));
static_assert( noexcept( v1 = std::move(v2) ), "Move assign cannot throw" );
- // static_assert( !noexcept( v1.swap(v2) ), "Swap can throw" );
-}
-
-int main()
-{
- test01();
- test02();
- test03();
- return 0;
+ static_assert( !noexcept( v1.swap(v2) ), "Swap can throw" );
}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/allocator/noexcept.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/allocator/noexcept.cc
index 0f73126ccd9..5ada755fcbf 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/allocator/noexcept.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/allocator/noexcept.cc
@@ -15,10 +15,10 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
+// { dg-do compile }
// { dg-options "-std=c++11" }
#include <unordered_set>
-#include <testsuite_hooks.h>
#include <testsuite_allocator.h>
struct T { int i; };
@@ -37,13 +37,11 @@ struct equal_to
namespace __gnu_test
{
- inline void
- swap(propagating_allocator<T, true>& l, propagating_allocator<T, true>& r)
- noexcept(false)
- {
- typedef uneq_allocator<T> base_alloc;
- swap(static_cast<base_alloc&>(l), static_cast<base_alloc&>(r));
- }
+ template<typename U>
+ inline void
+ swap(propagating_allocator<U, true>& l, propagating_allocator<U, true>& r)
+ noexcept(false)
+ { }
}
using __gnu_test::propagating_allocator;
@@ -76,13 +74,5 @@ void test03()
test_type v1(alloc_type(1));
test_type v2(alloc_type(2));
static_assert( noexcept( v1 = std::move(v2) ), "Move assign cannot throw" );
- // static_assert( !noexcept( v1.swap(v2) ), "Swap can throw" );
-}
-
-int main()
-{
- test01();
- test02();
- test03();
- return 0;
+ static_assert( !noexcept( v1.swap(v2) ), "Swap can throw" );
}
diff --git a/libstdc++-v3/testsuite/23_containers/vector/allocator/noexcept.cc b/libstdc++-v3/testsuite/23_containers/vector/allocator/noexcept.cc
index a805a4f0a2d..31231436b03 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/allocator/noexcept.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/allocator/noexcept.cc
@@ -15,23 +15,21 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
+// { dg-do compile }
// { dg-options "-std=gnu++0x" }
#include <vector>
-#include <testsuite_hooks.h>
#include <testsuite_allocator.h>
struct T { int i; };
namespace __gnu_test
{
- inline void
- swap(propagating_allocator<T, true>& l, propagating_allocator<T, true>& r)
- noexcept(false)
- {
- typedef uneq_allocator<T> base_alloc;
- swap(static_cast<base_alloc&>(l), static_cast<base_alloc&>(r));
- }
+ template<typename U>
+ inline void
+ swap(propagating_allocator<U, true>& l, propagating_allocator<U, true>& r)
+ noexcept(false)
+ { }
}
using __gnu_test::propagating_allocator;
@@ -66,11 +64,3 @@ void test03()
static_assert( noexcept( v1 = std::move(v2) ), "Move assign cannot throw" );
static_assert( !noexcept( v1.swap(v2) ), "Swap can throw" );
}
-
-int main()
-{
- test01();
- test02();
- test03();
- return 0;
-}
diff --git a/libstdc++-v3/testsuite/23_containers/vector/allocator/swap.cc b/libstdc++-v3/testsuite/23_containers/vector/allocator/swap.cc
index ce44cf80f88..ba44267737f 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/allocator/swap.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/allocator/swap.cc
@@ -64,7 +64,9 @@ void test02()
typedef propagating_allocator<T, true> alloc_type;
typedef std::vector<T, alloc_type> test_type;
test_type v1(alloc_type(1));
+ v1.push_back(T());
test_type v2(alloc_type(2));
+ v2.push_back(T());
std::swap(v1, v2);
VERIFY(2 == v1.get_allocator().get_personality());
VERIFY(1 == v2.get_allocator().get_personality());