summaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite
diff options
context:
space:
mode:
authorFrançois Dumont <fdumont@gcc.gnu.org>2019-05-17 04:55:37 +0000
committerFrançois Dumont <fdumont@gcc.gnu.org>2019-05-17 04:55:37 +0000
commit935469daaa5c02ac5104c0d5c04a1f12e23529b1 (patch)
tree37f387121dc323ef876f4df0a95dcd0abae8623b /libstdc++-v3/testsuite
parent395389bf9492a69db79747943d32abd0b7ac36c3 (diff)
downloadgcc-935469daaa5c02ac5104c0d5c04a1f12e23529b1.tar.gz
Move from state of allocators (LWG2593)
2019-05-17 François Dumont <fdumont@gcc.gnu.org> Move from state of allocators (LWG2593) * include/bits/stl_deque.h (_Deque_base(_Deque_base&&, false_type)): Remove. (_Deque_base(_Deque_base&&, true_type)): Remove. (_Deque_base(_Deque_base&&)): Adapt. (_Deque_base::_M_move_impl()): Remove. * testsuite/util/testsuite_allocator.h (propagating_allocator(propagating_allocator&&)): Preserve move from state. * testsuite/23_containers/deque/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/forward_list/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/list/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/map/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/multimap/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/multiset/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/set/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/unordered_map/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/unordered_multimap/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/unordered_multiset/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/unordered_set/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/vector/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/vector/bool/allocator/move_assign.cc (test02): Adapt. * testsuite/21_strings/basic_string/allocator/char/move_assign.cc (test02): Adapt. * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc (test02): Adapt. From-SVN: r271309
Diffstat (limited to 'libstdc++-v3/testsuite')
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/move_assign.cc8
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc8
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/allocator/move_assign.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/forward_list/allocator/move_assign.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/allocator/move_assign.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/map/allocator/move_assign.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/multimap/allocator/move_assign.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/multiset/allocator/move_assign.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/set/allocator/move_assign.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move_assign.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/move_assign.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/move_assign.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_set/allocator/move_assign.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/allocator/move_assign.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/bool/allocator/move_assign.cc2
-rw-r--r--libstdc++-v3/testsuite/util/testsuite_allocator.h8
16 files changed, 25 insertions, 25 deletions
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/move_assign.cc b/libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/move_assign.cc
index 6ff64e67a7d..d021831caee 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/move_assign.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/move_assign.cc
@@ -80,7 +80,7 @@ void test02()
test_type v2(alloc_type(2));
v2.assign(1, c);
v2 = std::move(v1);
- VERIFY(0 == v1.get_allocator().get_personality());
+ VERIFY(1 == v1.get_allocator().get_personality());
VERIFY(1 == v2.get_allocator().get_personality());
test_type v3(alloc_type(3));
@@ -88,7 +88,7 @@ void test02()
test_type v4(alloc_type(4));
v4.assign(100, c);
v4 = std::move(v3);
- VERIFY(0 == v3.get_allocator().get_personality());
+ VERIFY(3 == v3.get_allocator().get_personality());
VERIFY(3 == v4.get_allocator().get_personality());
test_type v5(alloc_type(5));
@@ -96,7 +96,7 @@ void test02()
test_type v6(alloc_type(6));
v6.assign(1, c);
v6 = std::move(v5);
- VERIFY(0 == v5.get_allocator().get_personality());
+ VERIFY(5 == v5.get_allocator().get_personality());
VERIFY(5 == v6.get_allocator().get_personality());
test_type v7(alloc_type(7));
@@ -104,7 +104,7 @@ void test02()
test_type v8(alloc_type(8));
v8.assign(100, c);
v8 = std::move(v7);
- VERIFY(0 == v7.get_allocator().get_personality());
+ VERIFY(7 == v7.get_allocator().get_personality());
VERIFY(7 == v8.get_allocator().get_personality());
}
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc b/libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc
index 4edf9cad06d..66a5036c5b8 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc
@@ -80,7 +80,7 @@ void test02()
test_type v2(alloc_type(2));
v2.assign(1, c);
v2 = std::move(v1);
- VERIFY(0 == v1.get_allocator().get_personality());
+ VERIFY(1 == v1.get_allocator().get_personality());
VERIFY(1 == v2.get_allocator().get_personality());
test_type v3(alloc_type(3));
@@ -88,7 +88,7 @@ void test02()
test_type v4(alloc_type(4));
v4.assign(100, c);
v4 = std::move(v3);
- VERIFY(0 == v3.get_allocator().get_personality());
+ VERIFY(3 == v3.get_allocator().get_personality());
VERIFY(3 == v4.get_allocator().get_personality());
test_type v5(alloc_type(5));
@@ -96,7 +96,7 @@ void test02()
test_type v6(alloc_type(6));
v6.assign(1, c);
v6 = std::move(v5);
- VERIFY(0 == v5.get_allocator().get_personality());
+ VERIFY(5 == v5.get_allocator().get_personality());
VERIFY(5 == v6.get_allocator().get_personality());
test_type v7(alloc_type(7));
@@ -104,7 +104,7 @@ void test02()
test_type v8(alloc_type(8));
v8.assign(100, c);
v8 = std::move(v7);
- VERIFY(0 == v7.get_allocator().get_personality());
+ VERIFY(7 == v7.get_allocator().get_personality());
VERIFY(7 == v8.get_allocator().get_personality());
}
diff --git a/libstdc++-v3/testsuite/23_containers/deque/allocator/move_assign.cc b/libstdc++-v3/testsuite/23_containers/deque/allocator/move_assign.cc
index 49d9c24ae9e..2eb66af9040 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/allocator/move_assign.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/allocator/move_assign.cc
@@ -45,7 +45,7 @@ void test02()
test_type v2(1, alloc_type(2));
v2 = std::move(v1);
VERIFY( it == v2.begin() );
- VERIFY(0 == v1.get_allocator().get_personality());
+ VERIFY(1 == v1.get_allocator().get_personality());
VERIFY(1 == v2.get_allocator().get_personality());
}
diff --git a/libstdc++-v3/testsuite/23_containers/forward_list/allocator/move_assign.cc b/libstdc++-v3/testsuite/23_containers/forward_list/allocator/move_assign.cc
index 44592baf1a6..118ac235391 100644
--- a/libstdc++-v3/testsuite/23_containers/forward_list/allocator/move_assign.cc
+++ b/libstdc++-v3/testsuite/23_containers/forward_list/allocator/move_assign.cc
@@ -48,7 +48,7 @@ void test02()
test_type v2(alloc_type(2));
v2.push_front(T());
v2 = std::move(v1);
- VERIFY(0 == v1.get_allocator().get_personality());
+ VERIFY(1 == v1.get_allocator().get_personality());
VERIFY(1 == v2.get_allocator().get_personality());
VERIFY( it == v2.begin() );
}
diff --git a/libstdc++-v3/testsuite/23_containers/list/allocator/move_assign.cc b/libstdc++-v3/testsuite/23_containers/list/allocator/move_assign.cc
index f0e9b55dc5f..e739fadacef 100644
--- a/libstdc++-v3/testsuite/23_containers/list/allocator/move_assign.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/allocator/move_assign.cc
@@ -48,7 +48,7 @@ void test02()
test_type v2(alloc_type(2));
v2.push_front(T());
v2 = std::move(v1);
- VERIFY(0 == v1.get_allocator().get_personality());
+ VERIFY(1 == v1.get_allocator().get_personality());
VERIFY(1 == v2.get_allocator().get_personality());
VERIFY( it == v2.begin() );
}
diff --git a/libstdc++-v3/testsuite/23_containers/map/allocator/move_assign.cc b/libstdc++-v3/testsuite/23_containers/map/allocator/move_assign.cc
index 9d94009e44c..828e4dd7cc7 100644
--- a/libstdc++-v3/testsuite/23_containers/map/allocator/move_assign.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/allocator/move_assign.cc
@@ -58,7 +58,7 @@ void test02()
v2 = { test_type::value_type{} };
v2 = std::move(v1);
- VERIFY( 0 == v1.get_allocator().get_personality() );
+ VERIFY( 1 == v1.get_allocator().get_personality() );
VERIFY( 1 == v2.get_allocator().get_personality() );
VERIFY( it == v2.begin() );
}
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/allocator/move_assign.cc b/libstdc++-v3/testsuite/23_containers/multimap/allocator/move_assign.cc
index f2df25c7a45..a4cbe85158a 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/allocator/move_assign.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/allocator/move_assign.cc
@@ -54,7 +54,7 @@ void test02()
test_type v2(alloc_type(2));
v2 = { test_type::value_type{} };
v2 = std::move(v1);
- VERIFY(0 == v1.get_allocator().get_personality());
+ VERIFY(1 == v1.get_allocator().get_personality());
VERIFY(1 == v2.get_allocator().get_personality());
VERIFY( it == v2.begin() );
}
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/allocator/move_assign.cc b/libstdc++-v3/testsuite/23_containers/multiset/allocator/move_assign.cc
index 58d17e4b3bf..0ba27c95aac 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/allocator/move_assign.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/allocator/move_assign.cc
@@ -52,7 +52,7 @@ void test02()
test_type v2(alloc_type(2));
v2 = { test_type::value_type{} };
v2 = std::move(v1);
- VERIFY(0 == v1.get_allocator().get_personality());
+ VERIFY(1 == v1.get_allocator().get_personality());
VERIFY(1 == v2.get_allocator().get_personality());
VERIFY( it == v2.begin() );
}
diff --git a/libstdc++-v3/testsuite/23_containers/set/allocator/move_assign.cc b/libstdc++-v3/testsuite/23_containers/set/allocator/move_assign.cc
index a1e5ea59fe1..17b15611283 100644
--- a/libstdc++-v3/testsuite/23_containers/set/allocator/move_assign.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/allocator/move_assign.cc
@@ -55,7 +55,7 @@ void test02()
test_type v2(alloc_type(2));
v2 = { test_type::value_type{} };
v2 = std::move(v1);
- VERIFY(0 == v1.get_allocator().get_personality());
+ VERIFY(1 == v1.get_allocator().get_personality());
VERIFY(1 == v2.get_allocator().get_personality());
VERIFY( it == v2.begin() );
}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move_assign.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move_assign.cc
index d377916a8da..577a2adb2de 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move_assign.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move_assign.cc
@@ -76,7 +76,7 @@ void test02()
v2 = std::move(v1);
- VERIFY(0 == v1.get_allocator().get_personality());
+ VERIFY(1 == v1.get_allocator().get_personality());
VERIFY(1 == v2.get_allocator().get_personality());
VERIFY( counter_type::move_assign_count == 0 );
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/move_assign.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/move_assign.cc
index 34cdedc929c..e58199673d3 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/move_assign.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/move_assign.cc
@@ -76,7 +76,7 @@ void test02()
v2 = std::move(v1);
- VERIFY(0 == v1.get_allocator().get_personality());
+ VERIFY(1 == v1.get_allocator().get_personality());
VERIFY(1 == v2.get_allocator().get_personality());
VERIFY( counter_type::move_assign_count == 0 );
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/move_assign.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/move_assign.cc
index 9abc5f5296a..92354241093 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/move_assign.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/move_assign.cc
@@ -70,7 +70,7 @@ void test02()
v2 = std::move(v1);
- VERIFY(0 == v1.get_allocator().get_personality());
+ VERIFY(1 == v1.get_allocator().get_personality());
VERIFY(1 == v2.get_allocator().get_personality());
VERIFY( counter_type::move_count == 0 );
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/allocator/move_assign.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/allocator/move_assign.cc
index 8f257871002..7243663ca51 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/allocator/move_assign.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/allocator/move_assign.cc
@@ -86,7 +86,7 @@ void test02()
v2 = std::move(v1);
- VERIFY(0 == v1.get_allocator().get_personality());
+ VERIFY(1 == v1.get_allocator().get_personality());
VERIFY(1 == v2.get_allocator().get_personality());
VERIFY( counter_type::move_count == 0 );
diff --git a/libstdc++-v3/testsuite/23_containers/vector/allocator/move_assign.cc b/libstdc++-v3/testsuite/23_containers/vector/allocator/move_assign.cc
index 5bca700f77d..2a2e3399425 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/allocator/move_assign.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/allocator/move_assign.cc
@@ -49,7 +49,7 @@ void test02()
v2.push_back(T());
v2 = std::move(v1);
VERIFY( it == v2.begin() );
- VERIFY(0 == v1.get_allocator().get_personality());
+ VERIFY(1 == v1.get_allocator().get_personality());
VERIFY(1 == v2.get_allocator().get_personality());
}
diff --git a/libstdc++-v3/testsuite/23_containers/vector/bool/allocator/move_assign.cc b/libstdc++-v3/testsuite/23_containers/vector/bool/allocator/move_assign.cc
index 903b1f9d6a2..b14ecb7d6e4 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/bool/allocator/move_assign.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/bool/allocator/move_assign.cc
@@ -49,7 +49,7 @@ void test02()
v2.push_back(T());
v2 = std::move(v1);
VERIFY( it == v2.begin() );
- VERIFY(0 == v1.get_allocator().get_personality());
+ VERIFY(1 == v1.get_allocator().get_personality());
VERIFY(1 == v2.get_allocator().get_personality());
}
diff --git a/libstdc++-v3/testsuite/util/testsuite_allocator.h b/libstdc++-v3/testsuite/util/testsuite_allocator.h
index d817ac4e838..34dba16669f 100644
--- a/libstdc++-v3/testsuite/util/testsuite_allocator.h
+++ b/libstdc++-v3/testsuite/util/testsuite_allocator.h
@@ -465,12 +465,12 @@ namespace __gnu_test
return *this;
}
- // postcondition: a.get_personality() == 0
+ // postcondition: LWG2593 a.get_personality() un-changed.
propagating_allocator(propagating_allocator&& a) noexcept
- : base_alloc()
- { swap_base(a); }
+ : base_alloc(std::move(a.base()))
+ { }
- // postcondition: a.get_personality() == 0
+ // postcondition: LWG2593 a.get_personality() un-changed
propagating_allocator&
operator=(propagating_allocator&& a) noexcept
{