Commit 0462fd5e by Paolo Carlini Committed by Paolo Carlini

set.h: Revert last change, per DR 1204 [Ready]; mention the latter in comment.

2010-01-09  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/debug/set.h: Revert last change, per DR 1204 [Ready];
	mention the latter in comment.
	* include/debug/unordered_map: Likewise.
 	* include/debug/multiset.h: Likewise.
 	* include/debug/vector: Likewise.
	* include/debug/unordered_set: Likewise.
	* include/debug/deque: Likewise.
	* include/debug/map.h: Likewise.
	* include/debug/list: Likewise.
	* include/debug/multimap.h: Likewise.
	* include/tr1_impl/unordered_map: Likewise.
	* include/tr1_impl/unordered_set: Likewise.
	* include/profile/set.h: Likewise.
	* include/profile/unordered_map: Likewise.
	* include/profile/multiset.h: Likewise.
	* include/profile/unordered_set: Likewise.
	* include/profile/vector: Likewise.
	* include/profile/deque: Likewise.
	* include/profile/map.h: Likewise.
	* include/profile/list: Likewise.
	* include/profile/multimap.h: Likewise.
	* include/ext/vstring.h: Likewise.
	* include/bits/stl_list.h: Likewise.
	* include/bits/stl_map.h: Likewise.
	* include/bits/stl_set.h: Likewise.
	* include/bits/stl_multimap.h: Likewise.
	* include/bits/stl_vector.h: Likewise.
	* include/bits/stl_deque.h: Likewise.
	* include/bits/stl_multiset.h: Likewise.

	* include/bits/forward_list.h: Remove pre-existing check.
	* include/ext/vstring.h: Likewise.

	* testsuite/ext/vstring/cons/self_move_assign.cc: Remove.
	* testsuite/23_containers/unordered_map/cons/self_move_assign.cc:
	Likewise.
	* testsuite/23_containers/multimap/cons/self_move_assign.cc: Likewise.
	* testsuite/23_containers/set/cons/self_move_assign.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/cons/
	self_move_assign.cc: Likewise.
	* testsuite/23_containers/forward_list/cons/self_move_assign.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/cons/self_move_assign.cc:
	Likewise.
 	* testsuite/23_containers/vector/cons/self_move_assign.cc: Likewise.
	* testsuite/23_containers/deque/cons/self_move_assign.cc: Likewise.
	* testsuite/23_containers/multiset/cons/self_move_assign.cc: Likewise.
	* testsuite/23_containers/list/cons/self_move_assign.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/cons/
	self_move_assign.cc: Likewise.
	* testsuite/23_containers/map/cons/self_move_assign.cc: Likewise.

	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
	Adjust dg-error line numbers.
 	* 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.
	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
	Likewise.
	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/dr438/
	assign_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/dr438/
	insert_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/dr438/
	constructor_2_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.

From-SVN: r155756
parent 3d876aba
2010-01-09 Paolo Carlini <paolo.carlini@oracle.com>
* include/debug/set.h: Revert last change, per DR 1204 [Ready];
mention the latter in comment.
* include/debug/unordered_map: Likewise.
* include/debug/multiset.h: Likewise.
* include/debug/vector: Likewise.
* include/debug/unordered_set: Likewise.
* include/debug/deque: Likewise.
* include/debug/map.h: Likewise.
* include/debug/list: Likewise.
* include/debug/multimap.h: Likewise.
* include/tr1_impl/unordered_map: Likewise.
* include/tr1_impl/unordered_set: Likewise.
* include/profile/set.h: Likewise.
* include/profile/unordered_map: Likewise.
* include/profile/multiset.h: Likewise.
* include/profile/unordered_set: Likewise.
* include/profile/vector: Likewise.
* include/profile/deque: Likewise.
* include/profile/map.h: Likewise.
* include/profile/list: Likewise.
* include/profile/multimap.h: Likewise.
* include/ext/vstring.h: Likewise.
* include/bits/stl_list.h: Likewise.
* include/bits/stl_map.h: Likewise.
* include/bits/stl_set.h: Likewise.
* include/bits/stl_multimap.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/bits/stl_deque.h: Likewise.
* include/bits/stl_multiset.h: Likewise.
* include/bits/forward_list.h: Remove pre-existing check.
* include/ext/vstring.h: Likewise.
* testsuite/ext/vstring/cons/self_move_assign.cc: Remove.
* testsuite/23_containers/unordered_map/cons/self_move_assign.cc:
Likewise.
* testsuite/23_containers/multimap/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/set/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/unordered_multimap/cons/
self_move_assign.cc: Likewise.
* testsuite/23_containers/forward_list/cons/self_move_assign.cc:
Likewise.
* testsuite/23_containers/unordered_set/cons/self_move_assign.cc:
Likewise.
* testsuite/23_containers/vector/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/deque/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/multiset/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/list/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/unordered_multiset/cons/
self_move_assign.cc: Likewise.
* testsuite/23_containers/map/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Adjust dg-error line numbers.
* 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.
* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
assign_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_2_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.
2010-01-08 Paolo Carlini <paolo.carlini@oracle.com> 2010-01-08 Paolo Carlini <paolo.carlini@oracle.com>
* include/debug/set.h: Protect move assignment operator vs self * include/debug/set.h: Protect move assignment operator vs self
......
...@@ -554,12 +554,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -554,12 +554,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
forward_list& forward_list&
operator=(forward_list&& __list) operator=(forward_list&& __list)
{ {
if (&__list != this) // NB: DR 1204.
{ // NB: DR 675.
this->clear(); this->clear();
this->swap(__list); this->swap(__list);
} return *this;
return *this;
} }
/** /**
......
...@@ -565,6 +565,7 @@ template<typename _Alloc> ...@@ -565,6 +565,7 @@ template<typename _Alloc>
vector& vector&
operator=(vector&& __x) operator=(vector&& __x)
{ {
// NB: DR 1204.
// NB: DR 675. // NB: DR 675.
this->clear(); this->clear();
this->swap(__x); this->swap(__x);
......
...@@ -884,12 +884,10 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -884,12 +884,10 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
deque& deque&
operator=(deque&& __x) operator=(deque&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x);
}
return *this; return *this;
} }
......
...@@ -606,12 +606,10 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -606,12 +606,10 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
list& list&
operator=(list&& __x) operator=(list&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x);
}
return *this; return *this;
} }
......
...@@ -265,12 +265,10 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -265,12 +265,10 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
map& map&
operator=(map&& __x) operator=(map&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x);
}
return *this; return *this;
} }
......
...@@ -262,12 +262,10 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -262,12 +262,10 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
multimap& multimap&
operator=(multimap&& __x) operator=(multimap&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x);
}
return *this; return *this;
} }
......
...@@ -234,12 +234,10 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -234,12 +234,10 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
multiset& multiset&
operator=(multiset&& __x) operator=(multiset&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x);
}
return *this; return *this;
} }
......
...@@ -241,13 +241,11 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -241,13 +241,11 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
set& set&
operator=(set&& __x) operator=(set&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x); return *this;
}
return *this;
} }
/** /**
......
...@@ -335,12 +335,10 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -335,12 +335,10 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
vector& vector&
operator=(vector&& __x) operator=(vector&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x);
}
return *this; return *this;
} }
......
...@@ -110,12 +110,10 @@ namespace __debug ...@@ -110,12 +110,10 @@ namespace __debug
deque& deque&
operator=(deque&& __x) operator=(deque&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. clear();
clear(); swap(__x);
swap(__x);
}
return *this; return *this;
} }
......
...@@ -112,13 +112,11 @@ namespace __debug ...@@ -112,13 +112,11 @@ namespace __debug
list& list&
operator=(list&& __x) operator=(list&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. clear();
clear(); swap(__x);
swap(__x); return *this;
}
return *this;
} }
list& list&
......
...@@ -115,12 +115,10 @@ namespace __debug ...@@ -115,12 +115,10 @@ namespace __debug
map& map&
operator=(map&& __x) operator=(map&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. clear();
clear(); swap(__x);
swap(__x);
}
return *this; return *this;
} }
......
...@@ -116,12 +116,10 @@ namespace __debug ...@@ -116,12 +116,10 @@ namespace __debug
multimap& multimap&
operator=(multimap&& __x) operator=(multimap&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. clear();
clear(); swap(__x);
swap(__x);
}
return *this; return *this;
} }
......
...@@ -113,12 +113,10 @@ namespace __debug ...@@ -113,12 +113,10 @@ namespace __debug
multiset& multiset&
operator=(multiset&& __x) operator=(multiset&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. clear();
clear(); swap(__x);
swap(__x);
}
return *this; return *this;
} }
......
...@@ -113,12 +113,10 @@ namespace __debug ...@@ -113,12 +113,10 @@ namespace __debug
set& set&
operator=(set&& __x) operator=(set&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. clear();
clear(); swap(__x);
swap(__x);
}
return *this; return *this;
} }
......
...@@ -115,12 +115,10 @@ namespace __debug ...@@ -115,12 +115,10 @@ namespace __debug
unordered_map& unordered_map&
operator=(unordered_map&& __x) operator=(unordered_map&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. clear();
clear(); swap(__x);
swap(__x);
}
return *this; return *this;
} }
...@@ -391,12 +389,10 @@ namespace __debug ...@@ -391,12 +389,10 @@ namespace __debug
unordered_multimap& unordered_multimap&
operator=(unordered_multimap&& __x) operator=(unordered_multimap&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. clear();
clear(); swap(__x);
swap(__x);
}
return *this; return *this;
} }
......
...@@ -115,12 +115,10 @@ namespace __debug ...@@ -115,12 +115,10 @@ namespace __debug
unordered_set& unordered_set&
operator=(unordered_set&& __x) operator=(unordered_set&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. clear();
clear(); swap(__x);
swap(__x);
}
return *this; return *this;
} }
...@@ -389,6 +387,7 @@ namespace __debug ...@@ -389,6 +387,7 @@ namespace __debug
unordered_multiset& unordered_multiset&
operator=(unordered_multiset&& __x) operator=(unordered_multiset&& __x)
{ {
// NB: DR 1204.
// NB: DR 675. // NB: DR 675.
clear(); clear();
swap(__x); swap(__x);
......
...@@ -124,12 +124,10 @@ namespace __debug ...@@ -124,12 +124,10 @@ namespace __debug
vector& vector&
operator=(vector&& __x) operator=(vector&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. clear();
clear(); swap(__x);
swap(__x);
}
return *this; return *this;
} }
......
...@@ -260,11 +260,10 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -260,11 +260,10 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
__versa_string& __versa_string&
operator=(__versa_string&& __str) operator=(__versa_string&& __str)
{ {
if (this != &__str) // NB: DR 1204.
{ // NB: DR 675.
this->clear(); this->clear();
this->swap(__str); this->swap(__str);
}
return *this; return *this;
} }
......
...@@ -102,12 +102,10 @@ namespace __profile ...@@ -102,12 +102,10 @@ namespace __profile
deque& deque&
operator=(deque&& __x) operator=(deque&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x);
}
return *this; return *this;
} }
......
...@@ -102,12 +102,10 @@ namespace __profile ...@@ -102,12 +102,10 @@ namespace __profile
list& list&
operator=(list&& __x) operator=(list&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x);
}
return *this; return *this;
} }
......
...@@ -121,12 +121,10 @@ namespace __profile ...@@ -121,12 +121,10 @@ namespace __profile
map& map&
operator=(map&& __x) operator=(map&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x);
}
return *this; return *this;
} }
......
...@@ -106,12 +106,10 @@ namespace __profile ...@@ -106,12 +106,10 @@ namespace __profile
multimap& multimap&
operator=(multimap&& __x) operator=(multimap&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x);
}
return *this; return *this;
} }
......
...@@ -104,12 +104,10 @@ namespace __profile ...@@ -104,12 +104,10 @@ namespace __profile
multiset& multiset&
operator=(multiset&& __x) operator=(multiset&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x);
}
return *this; return *this;
} }
......
...@@ -104,12 +104,10 @@ namespace __profile ...@@ -104,12 +104,10 @@ namespace __profile
set& set&
operator=(set&& __x) operator=(set&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x);
}
return *this; return *this;
} }
......
...@@ -130,12 +130,10 @@ namespace __profile ...@@ -130,12 +130,10 @@ namespace __profile
unordered_map& unordered_map&
operator=(unordered_map&& __x) operator=(unordered_map&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x);
}
return *this; return *this;
} }
...@@ -358,12 +356,10 @@ namespace __profile ...@@ -358,12 +356,10 @@ namespace __profile
unordered_multimap& unordered_multimap&
operator=(unordered_multimap&& __x) operator=(unordered_multimap&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x);
}
return *this; return *this;
} }
......
...@@ -129,12 +129,10 @@ namespace __profile ...@@ -129,12 +129,10 @@ namespace __profile
unordered_set& unordered_set&
operator=(unordered_set&& __x) operator=(unordered_set&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x);
}
return *this; return *this;
} }
...@@ -346,12 +344,10 @@ namespace __profile ...@@ -346,12 +344,10 @@ namespace __profile
unordered_multiset& unordered_multiset&
operator=(unordered_multiset&& __x) operator=(unordered_multiset&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x);
}
return *this; return *this;
} }
......
...@@ -140,13 +140,11 @@ namespace __profile ...@@ -140,13 +140,11 @@ namespace __profile
vector& vector&
operator=(vector&& __x) operator=(vector&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x); return *this;
}
return *this;
} }
vector& vector&
......
...@@ -229,12 +229,10 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -229,12 +229,10 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
unordered_map& unordered_map&
operator=(unordered_map&& __x) operator=(unordered_map&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x);
}
return *this; return *this;
} }
...@@ -315,12 +313,10 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -315,12 +313,10 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
unordered_multimap& unordered_multimap&
operator=(unordered_multimap&& __x) operator=(unordered_multimap&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x);
}
return *this; return *this;
} }
......
...@@ -222,12 +222,10 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -222,12 +222,10 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
unordered_set& unordered_set&
operator=(unordered_set&& __x) operator=(unordered_set&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x);
}
return *this; return *this;
} }
...@@ -305,12 +303,10 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -305,12 +303,10 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
unordered_multiset& unordered_multiset&
operator=(unordered_multiset&& __x) operator=(unordered_multiset&& __x)
{ {
if (this != &__x) // NB: DR 1204.
{ // NB: DR 675.
// NB: DR 675. this->clear();
this->clear(); this->swap(__x);
this->swap(__x);
}
return *this; return *this;
} }
......
// { dg-options "-std=gnu++0x" }
// 2010-01-08 Paolo Carlini <paolo.carlini@oracle.com>
// Copyright (C) 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
#include <deque>
#include <testsuite_hooks.h>
void test01()
{
bool test __attribute__((unused)) = true;
std::deque<int> d0(10, 1);
const std::deque<int> d1(d0);
d0 = std::move(d0);
VERIFY( d0.size() == 10 );
VERIFY( d0 == d1 );
}
int main()
{
test01();
return 0;
}
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1578 } // { dg-error "no matching" "" { target *-*-* } 1576 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <deque> #include <deque>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1517 } // { dg-error "no matching" "" { target *-*-* } 1515 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <deque> #include <deque>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1517 } // { dg-error "no matching" "" { target *-*-* } 1515 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <deque> #include <deque>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1662 } // { dg-error "no matching" "" { target *-*-* } 1660 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <deque> #include <deque>
......
// { dg-options "-std=gnu++0x" }
// 2010-01-08 Paolo Carlini <paolo.carlini@oracle.com>
// Copyright (C) 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
#include <forward_list>
#include <testsuite_hooks.h>
void test01()
{
bool test __attribute__((unused)) = true;
std::forward_list<int> fl0(10, 1);
const std::forward_list<int> fl1(fl0);
fl0 = std::move(fl0);
// VERIFY( fl0.size() == 10 );
VERIFY( fl0 == fl1 );
}
int main()
{
test01();
return 0;
}
// { dg-do compile } // { dg-do compile }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-error "no matching" "" { target *-*-* } 1197 } // { dg-error "no matching" "" { target *-*-* } 1196 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
// Copyright (C) 2009 Free Software Foundation // Copyright (C) 2009, 2010 Free Software Foundation
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
......
// { dg-do compile } // { dg-do compile }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-error "no matching" "" { target *-*-* } 1197 } // { dg-error "no matching" "" { target *-*-* } 1196 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
// Copyright (C) 2009 Free Software Foundation // Copyright (C) 2009, 2010 Free Software Foundation
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
......
// { dg-do compile } // { dg-do compile }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-error "no matching" "" { target *-*-* } 1197 } // { dg-error "no matching" "" { target *-*-* } 1196 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
// Copyright (C) 2009 Free Software Foundation // Copyright (C) 2009, 2010 Free Software Foundation
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
......
// { dg-do compile } // { dg-do compile }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-error "no matching" "" { target *-*-* } 1197 } // { dg-error "no matching" "" { target *-*-* } 1196 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
// Copyright (C) 2009 Free Software Foundation // Copyright (C) 2009, 2010 Free Software Foundation
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
......
// { dg-options "-std=gnu++0x" }
// 2010-01-08 Paolo Carlini <paolo.carlini@oracle.com>
// Copyright (C) 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
#include <list>
#include <testsuite_hooks.h>
void test01()
{
bool test __attribute__((unused)) = true;
std::list<int> l0(10, 1);
const std::list<int> l1(l0);
l0 = std::move(l0);
VERIFY( l0.size() == 10 );
VERIFY( l0 == l1 );
}
int main()
{
test01();
return 0;
}
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1412 } // { dg-error "no matching" "" { target *-*-* } 1410 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <list> #include <list>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1381 } // { dg-error "no matching" "" { target *-*-* } 1379 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <list> #include <list>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1381 } // { dg-error "no matching" "" { target *-*-* } 1379 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <list> #include <list>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1381 } // { dg-error "no matching" "" { target *-*-* } 1379 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <list> #include <list>
......
// { dg-options "-std=gnu++0x" }
// 2010-01-08 Paolo Carlini <paolo.carlini@oracle.com>
// Copyright (C) 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
#include <map>
#include <testsuite_hooks.h>
void test01()
{
bool test __attribute__((unused)) = true;
typedef std::map<int, int> map_type;
typedef map_type::value_type value_type;
map_type m0{ value_type(1, 1), value_type(2, 2), value_type(3, 3) };
const map_type m1(m0);
m0 = std::move(m0);
VERIFY( m0.size() == 3 );
VERIFY( m0 == m1 );
}
int main()
{
test01();
return 0;
}
// { dg-options "-std=gnu++0x" }
// 2010-01-08 Paolo Carlini <paolo.carlini@oracle.com>
// Copyright (C) 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
#include <map>
#include <testsuite_hooks.h>
void test01()
{
bool test __attribute__((unused)) = true;
typedef std::multimap<int, int> mmap_type;
typedef mmap_type::value_type value_type;
mmap_type mm0{ value_type(1, 1), value_type(2, 2), value_type(3, 3) };
const mmap_type mm1(mm0);
mm0 = std::move(mm0);
VERIFY( mm0.size() == 3 );
VERIFY( mm0 == mm1 );
}
int main()
{
test01();
return 0;
}
// { dg-options "-std=gnu++0x" }
// 2010-01-08 Paolo Carlini <paolo.carlini@oracle.com>
// Copyright (C) 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
#include <set>
#include <testsuite_hooks.h>
void test01()
{
bool test __attribute__((unused)) = true;
typedef std::multiset<int> mset_type;
mset_type ms0{ 1, 2, 3 };
const mset_type ms1(ms0);
ms0 = std::move(ms0);
VERIFY( ms0.size() == 3 );
VERIFY( ms0 == ms1 );
}
int main()
{
test01();
return 0;
}
// { dg-options "-std=gnu++0x" }
// 2010-01-08 Paolo Carlini <paolo.carlini@oracle.com>
// Copyright (C) 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
#include <set>
#include <testsuite_hooks.h>
void test01()
{
bool test __attribute__((unused)) = true;
typedef std::set<int> set_type;
set_type s0{ 1, 2, 3 };
const set_type s1(s0);
s0 = std::move(s0);
VERIFY( s0.size() == 3 );
VERIFY( s0 == s1 );
}
int main()
{
test01();
return 0;
}
// { dg-options "-std=gnu++0x" }
// 2010-01-08 Paolo Carlini <paolo.carlini@oracle.com>
// Copyright (C) 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
#include <unordered_map>
#include <testsuite_hooks.h>
void test01()
{
bool test __attribute__((unused)) = true;
typedef std::unordered_map<int, int> umap_type;
typedef umap_type::value_type value_type;
umap_type um0{ value_type(1, 1), value_type(2, 2), value_type(3, 3) };
const umap_type um1(um0);
um0 = std::move(um0);
VERIFY( um0.size() == 3 );
// VERIFY( um0 == um1 );
}
int main()
{
test01();
return 0;
}
// { dg-options "-std=gnu++0x" }
// 2010-01-08 Paolo Carlini <paolo.carlini@oracle.com>
// Copyright (C) 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
#include <unordered_map>
#include <testsuite_hooks.h>
void test01()
{
bool test __attribute__((unused)) = true;
typedef std::unordered_multimap<int, int> ummap_type;
typedef ummap_type::value_type value_type;
ummap_type umm0{ value_type(1, 1), value_type(2, 2), value_type(3, 3) };
const ummap_type umm1(umm0);
umm0 = std::move(umm0);
VERIFY( umm0.size() == 3 );
// VERIFY( umm0 == umm1 );
}
int main()
{
test01();
return 0;
}
// { dg-options "-std=gnu++0x" }
// 2010-01-08 Paolo Carlini <paolo.carlini@oracle.com>
// Copyright (C) 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
#include <unordered_set>
#include <testsuite_hooks.h>
void test01()
{
bool test __attribute__((unused)) = true;
typedef std::unordered_multiset<int> umset_type;
umset_type ums0{ 1, 2, 3 };
const umset_type ums1(ums0);
ums0 = std::move(ums0);
VERIFY( ums0.size() == 3 );
// VERIFY( ums0 == ums1 );
}
int main()
{
test01();
return 0;
}
// { dg-options "-std=gnu++0x" }
// 2010-01-08 Paolo Carlini <paolo.carlini@oracle.com>
// Copyright (C) 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
#include <unordered_set>
#include <testsuite_hooks.h>
void test01()
{
bool test __attribute__((unused)) = true;
typedef std::unordered_set<int> uset_type;
uset_type us0{ 1, 2, 3 };
const uset_type us1(us0);
us0 = std::move(us0);
VERIFY( us0.size() == 3 );
// VERIFY( us0 == us1 );
}
int main()
{
test01();
return 0;
}
// { dg-options "-std=gnu++0x" }
// 2010-01-08 Paolo Carlini <paolo.carlini@oracle.com>
// Copyright (C) 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
#include <vector>
#include <testsuite_hooks.h>
void test01()
{
bool test __attribute__((unused)) = true;
std::vector<int> v0(10, 1);
const std::vector<int> v1(v0);
v0 = std::move(v0);
VERIFY( v0.size() == 10 );
VERIFY( v0 == v1 );
}
int main()
{
test01();
return 0;
}
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1057 } // { dg-error "no matching" "" { target *-*-* } 1055 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <vector> #include <vector>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 997 } // { dg-error "no matching" "" { target *-*-* } 995 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <vector> #include <vector>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 997 } // { dg-error "no matching" "" { target *-*-* } 995 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <vector> #include <vector>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1098 } // { dg-error "no matching" "" { target *-*-* } 1096 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <vector> #include <vector>
......
// { dg-options "-std=gnu++0x" }
// { dg-require-string-conversions "" }
// 2010-01-08 Paolo Carlini <paolo.carlini@oracle.com>
// Copyright (C) 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
#include <ext/vstring.h>
#include <testsuite_hooks.h>
void test01()
{
bool test __attribute__((unused)) = true;
__gnu_cxx::__vstring vs0(10, 'a');
const __gnu_cxx::__vstring vs1(vs0);
vs0 = std::move(vs0);
VERIFY( vs0.size() == 10 );
VERIFY( vs0 == vs1 );
}
int main()
{
test01();
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment