+2014-03-11 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/60499
+ * include/debug/forward_list (forward_list::operator=(forward_list&&)):
+ Uglify name.
+ * include/debug/map (map::operator=(map&&)): Likewise.
+ * include/debug/multimap (multimap::operator=(multimap&&)): Likewise.
+ * include/debug/multiset (multiset::operator=(multiset&&)): Likewise.
+ * include/debug/set (set::operator=(set&&)): Likewise.
+ * include/debug/unordered_map
+ (unordered_map::operator=(unordered_map&&)): Likewise.
+ (unordered_multimap::operator=(unordered_multimap&&)): Likewise.
+ * include/debug/unordered_set
+ (unordered_set::operator=(unordered_set&&)): Likewise.
+ (unordered_multiset::operator=(unordered_multiset&&)): Likewise.
+ * include/debug/vector (vector::operator=(vector&&)): Likewise.
+ * testsuite/23_containers/forward_list/debug/60499.cc: New
+ * testsuite/23_containers/map/debug/60499.cc: New
+ * testsuite/23_containers/multimap/debug/60499.cc: New
+ * testsuite/23_containers/multiset/debug/60499.cc: New
+ * testsuite/23_containers/set/debug/60499.cc: New
+ * testsuite/23_containers/unordered_map/debug/60499.cc: New
+ * testsuite/23_containers/unordered_multimap/debug/60499.cc: New
+ * testsuite/23_containers/unordered_multiset/debug/60499.cc: New
+ * testsuite/23_containers/unordered_set/debug/60499.cc: New
+ * testsuite/23_containers/vector/debug/60499.cc: New
+
2014-03-05 Ed Smith-Rowland <3dw4rd@verizon.net>
* doc/xml/manual/status_cxx2014.xml: Add new items and latest papers
noexcept(_Node_alloc_traits::_S_nothrow_move())
{
__glibcxx_check_self_move_assign(__list);
- bool xfer_memory = _Node_alloc_traits::_S_propagate_on_move_assign()
+ bool __xfer_memory = _Node_alloc_traits::_S_propagate_on_move_assign()
|| __list.get_allocator() == this->get_allocator();
static_cast<_Base&>(*this) = std::move(__list);
- if (xfer_memory)
+ if (__xfer_memory)
this->_M_swap(__list);
else
this->_M_invalidate_all();
noexcept(_Alloc_traits::_S_nothrow_move())
{
__glibcxx_check_self_move_assign(__x);
- bool xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
+ bool __xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
|| __x.get_allocator() == this->get_allocator();
_M_base() = std::move(__x._M_base());
- if (xfer_memory)
+ if (__xfer_memory)
this->_M_swap(__x);
else
this->_M_invalidate_all();
noexcept(_Alloc_traits::_S_nothrow_move())
{
__glibcxx_check_self_move_assign(__x);
- bool xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
+ bool __xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
|| __x.get_allocator() == this->get_allocator();
_M_base() = std::move(__x._M_base());
- if (xfer_memory)
+ if (__xfer_memory)
this->_M_swap(__x);
else
this->_M_invalidate_all();
noexcept(_Alloc_traits::_S_nothrow_move())
{
__glibcxx_check_self_move_assign(__x);
- bool xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
+ bool __xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
|| __x.get_allocator() == this->get_allocator();
_M_base() = std::move(__x._M_base());
- if (xfer_memory)
+ if (__xfer_memory)
this->_M_swap(__x);
else
this->_M_invalidate_all();
noexcept(_Alloc_traits::_S_nothrow_move())
{
__glibcxx_check_self_move_assign(__x);
- bool xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
+ bool __xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
|| __x.get_allocator() == this->get_allocator();
_M_base() = std::move(__x._M_base());
- if (xfer_memory)
+ if (__xfer_memory)
this->_M_swap(__x);
else
this->_M_invalidate_all();
noexcept(_Alloc_traits::_S_nothrow_move())
{
__glibcxx_check_self_move_assign(__x);
- bool xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
+ bool __xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
|| __x.get_allocator() == this->get_allocator();
_M_base() = std::move(__x._M_base());
- if (xfer_memory)
+ if (__xfer_memory)
this->_M_swap(__x);
else
this->_M_invalidate_all();
noexcept(_Alloc_traits::_S_nothrow_move())
{
__glibcxx_check_self_move_assign(__x);
- bool xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
+ bool __xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
|| __x.get_allocator() == this->get_allocator();
_M_base() = std::move(__x._M_base());
- if (xfer_memory)
+ if (__xfer_memory)
this->_M_swap(__x);
else
this->_M_invalidate_all();
noexcept(_Alloc_traits::_S_nothrow_move())
{
__glibcxx_check_self_move_assign(__x);
- bool xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
+ bool __xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
|| __x.get_allocator() == this->get_allocator();
_M_base() = std::move(__x._M_base());
- if (xfer_memory)
+ if (__xfer_memory)
this->_M_swap(__x);
else
this->_M_invalidate_all();
noexcept(_Alloc_traits::_S_nothrow_move())
{
__glibcxx_check_self_move_assign(__x);
- bool xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
+ bool __xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
|| __x.get_allocator() == this->get_allocator();
_M_base() = std::move(__x._M_base());
- if (xfer_memory)
+ if (__xfer_memory)
this->_M_swap(__x);
else
this->_M_invalidate_all();
operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
{
__glibcxx_check_self_move_assign(__x);
- bool xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
+ bool __xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
|| __x.get_allocator() == this->get_allocator();
_M_base() = std::move(__x._M_base());
- if (xfer_memory)
+ if (__xfer_memory)
this->_M_swap(__x);
else
this->_M_invalidate_all();
--- /dev/null
+// Copyright (C) 2014 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/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=gnu++11" }
+// { dg-do compile }
+
+// PR libstdc++/60499
+
+#define xfer_memory 1
+#include <forward_list>
+
+std::forward_list<int> a, b = std::move(a);
--- /dev/null
+// Copyright (C) 2014 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/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=gnu++11" }
+// { dg-do compile }
+
+// PR libstdc++/60499
+
+#define xfer_memory 1
+#include <map>
+
+std::map<int, int> a, b = std::move(a);
--- /dev/null
+// Copyright (C) 2014 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/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=gnu++11" }
+// { dg-do compile }
+
+// PR libstdc++/60499
+
+#define xfer_memory 1
+#include <map>
+
+std::multimap<int, int> a, b = std::move(a);
--- /dev/null
+// Copyright (C) 2014 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/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=gnu++11" }
+// { dg-do compile }
+
+// PR libstdc++/60499
+
+#define xfer_memory 1
+#include <set>
+
+std::multiset<int> a, b = std::move(a);
--- /dev/null
+// Copyright (C) 2014 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/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=gnu++11" }
+// { dg-do compile }
+
+// PR libstdc++/60499
+
+#define xfer_memory 1
+#include <set>
+
+std::set<int> a, b = std::move(a);
--- /dev/null
+// Copyright (C) 2014 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/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=gnu++11" }
+// { dg-do compile }
+
+// PR libstdc++/60499
+
+#define xfer_memory 1
+#include <unordered_map>
+
+std::unordered_map<int, int> a, b = std::move(a);
--- /dev/null
+// Copyright (C) 2014 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/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=gnu++11" }
+// { dg-do compile }
+
+// PR libstdc++/60499
+
+#define xfer_memory 1
+#include <unordered_map>
+
+std::unordered_multimap<int, int> a, b = std::move(a);
--- /dev/null
+// Copyright (C) 2014 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/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=gnu++11" }
+// { dg-do compile }
+
+// PR libstdc++/60499
+
+#define xfer_memory 1
+#include <unordered_set>
+
+std::unordered_multiset<int> a, b = std::move(a);
--- /dev/null
+// Copyright (C) 2014 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/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=gnu++11" }
+// { dg-do compile }
+
+// PR libstdc++/60499
+
+#define xfer_memory 1
+#include <unordered_set>
+
+std::unordered_set<int> a, b = std::move(a);
--- /dev/null
+// Copyright (C) 2014 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/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=gnu++11" }
+// { dg-do compile }
+
+// PR libstdc++/60499
+
+#define xfer_memory 1
+#include <vector>
+
+std::vector<int> a, b = std::move(a);