diff options
author | Paolo Carlini <pcarlini@suse.de> | 2007-11-09 17:18:10 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2007-11-09 17:18:10 +0000 |
commit | cbc6c888f94488419c4d342793a1f32fe1364284 (patch) | |
tree | dfa75ee734548fc8f37c3111b697791a957eb4f3 /libstdc++-v3/include | |
parent | ac4a7e21ca926ec25d5224efb2094d952436496a (diff) | |
download | gcc-cbc6c888f94488419c4d342793a1f32fe1364284.zip gcc-cbc6c888f94488419c4d342793a1f32fe1364284.tar.gz gcc-cbc6c888f94488419c4d342793a1f32fe1364284.tar.bz2 |
stl_deque.h (deque<>::operator=(deque&&)): Implement resolution of DR 675, call clear first.
2007-11-09 Paolo Carlini <pcarlini@suse.de>
* include/bits/stl_deque.h (deque<>::operator=(deque&&)): Implement
resolution of DR 675, call clear first.
* include/bits/stl_list.h (list<>::operator=(list&&)): Likewise.
* include/bits/stl_bvector.h (vector<bool>::operator=(vector&&)):
Likewise.
* include/bits/stl_vector.h (vector<>::operator=(vector&&)): Likewise.
* include/bits/stl_map.h (map<>::operator=(map&&)): Likewise.
* include/bits/stl_multimap.h (multimap<>::operator=(multimap&&)):
Likewise.
* include/bits/stl_multiset.h (multiset<>::operator=(multiset&&)):
Likewise.
* include/bits/stl_set.h (set<>::operator=(set&&)): Likewise.
* include/debug/map.h (map<>::operator=(map&&)): Likewise.
* include/debug/set.h (set<>::operator=(set&&)): Likewise.
* include/debug/multimap.h (multimap<>::operator=(multimap&&)):
Likewise.
* include/debug/multiset.h (multiset<>::operator=(multiset&&)):
Likewise.
* include/debug/deque (deque<>::operator=(deque&&)): Likewise.
* include/debug/list (list<>::operator=(list&&)): Likewise.
* include/debug/vector (vector<>::operator=(vector&&)): Likewise.
* testsuite/23_containers/multimap/moveable.cc: Adjust.
* testsuite/23_containers/multiset/moveable.cc: Likewise.
* testsuite/23_containers/set/moveable.cc: Likewise.
* testsuite/23_containers/map/moveable.cc: Likewise.
* testsuite/20_util/pair/moveable.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
Adjust dg-error line numbers.
* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
From-SVN: r130051
Diffstat (limited to 'libstdc++-v3/include')
-rw-r--r-- | libstdc++-v3/include/bits/stl_bvector.h | 4 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_deque.h | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_list.h | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_map.h | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_multimap.h | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_multiset.h | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_set.h | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_vector.h | 4 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/deque | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/list | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/map.h | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/multimap.h | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/multiset.h | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/set.h | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/vector | 2 |
15 files changed, 32 insertions, 2 deletions
diff --git a/libstdc++-v3/include/bits/stl_bvector.h b/libstdc++-v3/include/bits/stl_bvector.h index cb99b22..255e00b 100644 --- a/libstdc++-v3/include/bits/stl_bvector.h +++ b/libstdc++-v3/include/bits/stl_bvector.h @@ -560,7 +560,9 @@ template<typename _Alloc> #ifdef __GXX_EXPERIMENTAL_CXX0X__ vector& operator=(vector&& __x) - { + { + // NB: DR 675. + this->clear(); this->swap(__x); return *this; } diff --git a/libstdc++-v3/include/bits/stl_deque.h b/libstdc++-v3/include/bits/stl_deque.h index 356cff2..ae01eae 100644 --- a/libstdc++-v3/include/bits/stl_deque.h +++ b/libstdc++-v3/include/bits/stl_deque.h @@ -808,6 +808,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) deque& operator=(deque&& __x) { + // NB: DR 675. + this->clear(); this->swap(__x); return *this; } diff --git a/libstdc++-v3/include/bits/stl_list.h b/libstdc++-v3/include/bits/stl_list.h index 4de31d8..41b84f3 100644 --- a/libstdc++-v3/include/bits/stl_list.h +++ b/libstdc++-v3/include/bits/stl_list.h @@ -582,6 +582,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) list& operator=(list&& __x) { + // NB: DR 675. + this->clear(); this->swap(__x); return *this; } diff --git a/libstdc++-v3/include/bits/stl_map.h b/libstdc++-v3/include/bits/stl_map.h index bc9d13be..6426440 100644 --- a/libstdc++-v3/include/bits/stl_map.h +++ b/libstdc++-v3/include/bits/stl_map.h @@ -255,6 +255,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) map& operator=(map&& __x) { + // NB: DR 675. + this->clear(); this->swap(__x); return *this; } diff --git a/libstdc++-v3/include/bits/stl_multimap.h b/libstdc++-v3/include/bits/stl_multimap.h index a280692..76d6b47 100644 --- a/libstdc++-v3/include/bits/stl_multimap.h +++ b/libstdc++-v3/include/bits/stl_multimap.h @@ -253,6 +253,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) multimap& operator=(multimap&& __x) { + // NB: DR 675. + this->clear(); this->swap(__x); return *this; } diff --git a/libstdc++-v3/include/bits/stl_multiset.h b/libstdc++-v3/include/bits/stl_multiset.h index 60d4d9c..5c897bd 100644 --- a/libstdc++-v3/include/bits/stl_multiset.h +++ b/libstdc++-v3/include/bits/stl_multiset.h @@ -225,6 +225,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) multiset& operator=(multiset&& __x) { + // NB: DR 675. + this->clear(); this->swap(__x); return *this; } diff --git a/libstdc++-v3/include/bits/stl_set.h b/libstdc++-v3/include/bits/stl_set.h index d260156..3eb4b26 100644 --- a/libstdc++-v3/include/bits/stl_set.h +++ b/libstdc++-v3/include/bits/stl_set.h @@ -232,6 +232,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) set& operator=(set&& __x) { + // NB: DR 675. + this->clear(); this->swap(__x); return *this; } diff --git a/libstdc++-v3/include/bits/stl_vector.h b/libstdc++-v3/include/bits/stl_vector.h index bf2cc27..0e5e6c1 100644 --- a/libstdc++-v3/include/bits/stl_vector.h +++ b/libstdc++-v3/include/bits/stl_vector.h @@ -325,7 +325,9 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) */ vector& operator=(vector&& __x) - { + { + // NB: DR 675. + this->clear(); this->swap(__x); return *this; } diff --git a/libstdc++-v3/include/debug/deque b/libstdc++-v3/include/debug/deque index 6571d15..8d3bf83 100644 --- a/libstdc++-v3/include/debug/deque +++ b/libstdc++-v3/include/debug/deque @@ -110,6 +110,8 @@ namespace __debug deque& operator=(deque&& __x) { + // NB: DR 675. + clear(); swap(__x); return *this; } diff --git a/libstdc++-v3/include/debug/list b/libstdc++-v3/include/debug/list index 7174334..9e78fc9 100644 --- a/libstdc++-v3/include/debug/list +++ b/libstdc++-v3/include/debug/list @@ -139,6 +139,8 @@ namespace __debug list& operator=(list&& __x) { + // NB: DR 675. + clear(); swap(__x); return *this; } diff --git a/libstdc++-v3/include/debug/map.h b/libstdc++-v3/include/debug/map.h index 671e1f8..1657564 100644 --- a/libstdc++-v3/include/debug/map.h +++ b/libstdc++-v3/include/debug/map.h @@ -114,6 +114,8 @@ namespace __debug map& operator=(map&& __x) { + // NB: DR 675. + clear(); swap(__x); return *this; } diff --git a/libstdc++-v3/include/debug/multimap.h b/libstdc++-v3/include/debug/multimap.h index 1dd4de8..72f4411 100644 --- a/libstdc++-v3/include/debug/multimap.h +++ b/libstdc++-v3/include/debug/multimap.h @@ -115,6 +115,8 @@ namespace __debug multimap& operator=(multimap&& __x) { + // NB: DR 675. + clear(); swap(__x); return *this; } diff --git a/libstdc++-v3/include/debug/multiset.h b/libstdc++-v3/include/debug/multiset.h index 7c58db1..ffe5b51 100644 --- a/libstdc++-v3/include/debug/multiset.h +++ b/libstdc++-v3/include/debug/multiset.h @@ -112,6 +112,8 @@ namespace __debug multiset& operator=(multiset&& __x) { + // NB: DR 675. + clear(); swap(__x); return *this; } diff --git a/libstdc++-v3/include/debug/set.h b/libstdc++-v3/include/debug/set.h index bebc34c..3115610 100644 --- a/libstdc++-v3/include/debug/set.h +++ b/libstdc++-v3/include/debug/set.h @@ -112,6 +112,8 @@ namespace __debug set& operator=(set&& __x) { + // NB: DR 675. + clear(); swap(__x); return *this; } diff --git a/libstdc++-v3/include/debug/vector b/libstdc++-v3/include/debug/vector index c5e4d12..8890ab9 100644 --- a/libstdc++-v3/include/debug/vector +++ b/libstdc++-v3/include/debug/vector @@ -123,6 +123,8 @@ namespace __debug vector& operator=(vector&& __x) { + // NB: DR 675. + clear(); swap(__x); return *this; } |