summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>2014-01-09 18:38:52 +0000
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>2014-01-09 18:38:52 +0000
commit69547fcc1911c6019d27b2fc2de830e66510683b (patch)
treec263060a71cfba60f6595a2ce5e81d11b50d2789
parent85b55045bd0d5b643d49829ea79378dc899881de (diff)
downloadppe42-gcc-69547fcc1911c6019d27b2fc2de830e66510683b.tar.gz
ppe42-gcc-69547fcc1911c6019d27b2fc2de830e66510683b.zip
PR libstdc++/59738
* include/bits/stl_vector.h (vector<>::_M_move_assign): Restore support for non-Movable types. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206480 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/include/bits/stl_vector.h3
2 files changed, 8 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 965b0916c6a..78cce64ac42 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2014-01-09 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/59738
+ * include/bits/stl_vector.h (vector<>::_M_move_assign): Restore
+ support for non-Movable types.
+
2014-01-08 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_vector.h (std::vector<>::_M_move_assign): Pass
diff --git a/libstdc++-v3/include/bits/stl_vector.h b/libstdc++-v3/include/bits/stl_vector.h
index 3638a8c07ef..2cedd39cae8 100644
--- a/libstdc++-v3/include/bits/stl_vector.h
+++ b/libstdc++-v3/include/bits/stl_vector.h
@@ -1433,7 +1433,8 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
void
_M_move_assign(vector&& __x, std::true_type) noexcept
{
- const vector __tmp(std::move(*this), get_allocator());
+ vector __tmp(get_allocator());
+ this->_M_impl._M_swap_data(__tmp._M_impl);
this->_M_impl._M_swap_data(__x._M_impl);
if (_Alloc_traits::_S_propagate_on_move_assign())
std::__alloc_on_move(_M_get_Tp_allocator(),
OpenPOWER on IntegriCloud