diff options
author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-01-09 02:49:53 +0000 |
---|---|---|
committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-01-09 02:49:53 +0000 |
commit | d79da0e907feba3c6a5ca258d7ded778cee56fed (patch) | |
tree | 48fa6995cf164184782c7de0dd7715af315d6905 /libstdc++-v3/include/bits/stl_list.h | |
parent | eda7c5f409abb11746f6df5948bc8c0631b4459b (diff) | |
download | ppe42-gcc-d79da0e907feba3c6a5ca258d7ded778cee56fed.tar.gz ppe42-gcc-d79da0e907feba3c6a5ca258d7ded778cee56fed.zip |
2010-01-08 Paolo Carlini <paolo.carlini@oracle.com>
* include/debug/set.h: Protect move assignment operator vs self
assignment.
* 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/ext/vstring.h: Use clear().
* testsuite/ext/vstring/cons/self_move_assign.cc: New.
* 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/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/ext/vstring/moveable.cc: Move to...
* testsuite/ext/vstring/cons/moveable.cc: ... here.
* testsuite/23_containers/unordered_map/moveable.cc: Move to...
* testsuite/23_containers/unordered_map/cons/moveable.cc ... here.
* testsuite/23_containers/multimap/moveable.cc: Move to...
* testsuite/23_containers/multimap/cons/moveable.cc: ... here.
* testsuite/23_containers/set/moveable.cc: Move to...
* testsuite/23_containers/set/cons/moveable.cc: ... here.
* testsuite/23_containers/unordered_multimap/moveable.cc: Move to...
* testsuite/23_containers/unordered_multimap/cons/moveable.cc:
... here.
* testsuite/23_containers/forward_list/moveable.cc: Move to...
* testsuite/23_containers/forward_list/cons/moveable.cc: ... here.
* testsuite/23_containers/unordered_set/moveable.cc Move to...
* testsuite/23_containers/unordered_set/moveable.cc: ... here.
* testsuite/23_containers/vector/cons/moveable.cc Move to...
* testsuite/23_containers/vector/cons/moveable2.cc: ... this.
* testsuite/23_containers/deque/cons/moveable.cc Move to...
* testsuite/23_containers/deque/cons/moveable2.cc: ... this.
* testsuite/23_containers/multiset/moveable.cc Move to...
* testsuite/23_containers/multiset/cons/moveable.cc: ... here.
* testsuite/23_containers/list/moveable.h Move to...
* testsuite/23_containers/list/cons/moveable.h: ... here.
* testsuite/23_containers/list/moveable.cc Move to...
* testsuite/23_containers/list/cons/moveable.cc: ... here.
* testsuite/23_containers/unordered_multiset/moveable.cc Move to...
* testsuite/23_containers/unordered_multiset/cons/moveable.cc:
... here.
* testsuite/23_containers/map/moveable.cc Move to...
* testsuite/23_containers/map/cons/moveable.cc: ... here.
* testsuite/23_containers/vector/moveable.cc: Move to...
* testsuite/23_containers/vector/cons/moveable.cc: ... here.
* testsuite/23_containers/deque/moveable.cc: Move to...
* testsuite/23_containers/deque/cons/moveable.cc: ... here.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155754 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include/bits/stl_list.h')
-rw-r--r-- | libstdc++-v3/include/bits/stl_list.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/libstdc++-v3/include/bits/stl_list.h b/libstdc++-v3/include/bits/stl_list.h index 51f8a8f931d..b6ce11382ef 100644 --- a/libstdc++-v3/include/bits/stl_list.h +++ b/libstdc++-v3/include/bits/stl_list.h @@ -1,6 +1,6 @@ // List implementation -*- C++ -*- -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -606,9 +606,12 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) list& operator=(list&& __x) { - // NB: DR 675. - this->clear(); - this->swap(__x); + if (this != &__x) + { + // NB: DR 675. + this->clear(); + this->swap(__x); + } return *this; } |