formatter.h (enum _Debug_msg_id): Add __msg_self_move_assign.

2012-03-09  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/debug/formatter.h (enum _Debug_msg_id): Add
	__msg_self_move_assign.
	* include/debug/macros.h (__glibcxx_check_self_move_assign): Add.
	* src/c++11/debug.cc (_S_debug_messages): Update.
	* include/debug/safe_iterator.h (_Safe_iterator<>::operator=
	(_Safe_iterator&&)): Add check for self move assignment.
	* include/debug/set.h: Likewise.
	* include/debug/unordered_map: Likewise.
	* include/debug/multiset.h: Likewise.
	* include/debug/forward_list: Likewise.
	* include/debug/unordered_set: Likewise.
	* include/debug/vector: Likewise.
	* include/debug/map.h: Likewise.
	* include/debug/deque: Likewise.
	* include/debug/string: Likewise.
	* include/debug/list: Likewise.
	* include/debug/multimap.h: Likewise.
	* testsuite/21_strings/debug/self_move_assign_neg.cc: New.
	* testsuite/21_strings/debug/iterator_self_move_assign_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
	Likewise.
	* testsuite/23_containers/unordered_map/debug/
	iterator_self_move_assign_neg.cc: Likewise.
	* testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
	Likewise.
	* testsuite/23_containers/multimap/debug/
	iterator_self_move_assign_neg.cc: Likewise.
	* testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
	* testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
	Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	self_move_assign_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	iterator_self_move_assign_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
	Likewise.
	* testsuite/23_containers/forward_list/debug/
	iterator_self_move_assign_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/self_move_assign_neg.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/debug/
	iterator_self_move_assign_neg.cc: Likewise.
	* testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/debug/
	iterator_self_move_assign_neg.cc: Likewise.
	* testsuite/23_containers/deque/debug/self_move_assign_neg.cc: Likewise.
	* testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
	Likewise.
	* testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
	Likewise.
	* testsuite/23_containers/multiset/debug/
	iterator_self_move_assign_neg.cc: Likewise.
	* testsuite/23_containers/list/debug/self_move_assign_neg.cc:
	Likewise.
	* testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	self_move_assign_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	iterator_self_move_assign_neg.cc: Likewise.
	* testsuite/23_containers/map/debug/self_move_assign_neg.cc:
	Likewise.
	* testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
	Likewise.

From-SVN: r185134
This commit is contained in:
Paolo Carlini 2012-03-09 10:37:34 +00:00 committed by Paolo Carlini
parent 575a623526
commit 739fd6a6b3
42 changed files with 1001 additions and 11 deletions

View File

@ -1,3 +1,71 @@
2012-03-09 Paolo Carlini <paolo.carlini@oracle.com>
* include/debug/formatter.h (enum _Debug_msg_id): Add
__msg_self_move_assign.
* include/debug/macros.h (__glibcxx_check_self_move_assign): Add.
* src/c++11/debug.cc (_S_debug_messages): Update.
* include/debug/safe_iterator.h (_Safe_iterator<>::operator=
(_Safe_iterator&&)): Add check for self move assignment.
* include/debug/set.h: Likewise.
* include/debug/unordered_map: Likewise.
* include/debug/multiset.h: Likewise.
* include/debug/forward_list: Likewise.
* include/debug/unordered_set: Likewise.
* include/debug/vector: Likewise.
* include/debug/map.h: Likewise.
* include/debug/deque: Likewise.
* include/debug/string: Likewise.
* include/debug/list: Likewise.
* include/debug/multimap.h: Likewise.
* testsuite/21_strings/debug/self_move_assign_neg.cc: New.
* testsuite/21_strings/debug/iterator_self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_map/debug/
iterator_self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/multimap/debug/
iterator_self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/
self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/
iterator_self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/forward_list/debug/
iterator_self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/
iterator_self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/vector/debug/
iterator_self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/multiset/debug/
iterator_self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/list/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/
self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/unordered_multiset/debug/
iterator_self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/map/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
Likewise.
2012-03-08 Benjamin Kosnik <bkoz@redhat.com>
* doc/doxygen/user.cfg.in: Update to Doxygen 1.8.0.

View File

@ -134,6 +134,7 @@ namespace __debug
{
// NB: DR 1204.
// NB: DR 675.
__glibcxx_check_self_move_assign(__x);
clear();
swap(__x);
return *this;

View File

@ -1,6 +1,6 @@
// Debug-mode error formatting implementation -*- C++ -*-
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@ -109,7 +109,9 @@ namespace __gnu_debug
__msg_valid_range2,
// unordered sequence local iterators
__msg_local_iter_compare_bad,
__msg_non_empty_range
__msg_non_empty_range,
// self move assign
__msg_self_move_assign
};
class _Error_formatter

View File

@ -131,6 +131,7 @@ namespace __debug
{
// NB: DR 1204.
// NB: DR 675.
__glibcxx_check_self_move_assign(__list);
clear();
swap(__list);
return *this;

View File

@ -135,6 +135,7 @@ namespace __debug
{
// NB: DR 1204.
// NB: DR 675.
__glibcxx_check_self_move_assign(__x);
clear();
swap(__x);
return *this;

View File

@ -1,6 +1,6 @@
// Debugging support implementation -*- C++ -*-
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@ -310,6 +310,12 @@ _GLIBCXX_DEBUG_VERIFY(std::__is_heap(_First, _Last, _Pred), \
._M_iterator(_Last, #_Last) \
._M_string(#_Pred))
// Verify that the container is not self move assigned
#define __glibcxx_check_self_move_assign(_Other) \
_GLIBCXX_DEBUG_VERIFY(this != &_Other, \
_M_message(__gnu_debug::__msg_self_move_assign) \
._M_sequence(*this, "this"))
#ifdef _GLIBCXX_DEBUG_PEDANTIC
# define __glibcxx_check_string(_String) _GLIBCXX_DEBUG_ASSERT(_String != 0)
# define __glibcxx_check_string_len(_String,_Len) \

View File

@ -1,6 +1,6 @@
// Debugging map implementation -*- C++ -*-
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011, 2012
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@ -120,6 +120,7 @@ namespace __debug
{
// NB: DR 1204.
// NB: DR 675.
__glibcxx_check_self_move_assign(__x);
clear();
swap(__x);
return *this;

View File

@ -1,6 +1,6 @@
// Debugging multimap implementation -*- C++ -*-
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011, 2012
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@ -121,6 +121,7 @@ namespace __debug
{
// NB: DR 1204.
// NB: DR 675.
__glibcxx_check_self_move_assign(__x);
clear();
swap(__x);
return *this;

View File

@ -1,6 +1,6 @@
// Debugging multiset implementation -*- C++ -*-
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011, 2012
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@ -120,6 +120,7 @@ namespace __debug
{
// NB: DR 1204.
// NB: DR 675.
__glibcxx_check_self_move_assign(__x);
clear();
swap(__x);
return *this;

View File

@ -234,6 +234,9 @@ namespace __gnu_debug
_Safe_iterator&
operator=(_Safe_iterator&& __x)
{
_GLIBCXX_DEBUG_VERIFY(this != &__x,
_M_message(__msg_self_move_assign)
._M_iterator(*this, "this"));
_GLIBCXX_DEBUG_VERIFY(!__x._M_singular()
|| __x._M_current == _Iterator(),
_M_message(__msg_copy_singular)

View File

@ -1,6 +1,6 @@
// Debugging set implementation -*- C++ -*-
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@ -120,6 +120,7 @@ namespace __debug
{
// NB: DR 1204.
// NB: DR 675.
__glibcxx_check_self_move_assign(__x);
clear();
swap(__x);
return *this;

View File

@ -155,6 +155,7 @@ namespace __gnu_debug
basic_string&
operator=(basic_string&& __str)
{
__glibcxx_check_self_move_assign(__str);
*static_cast<_Base*>(this) = std::move(__str);
this->_M_invalidate_all();
return *this;

View File

@ -1,6 +1,6 @@
// Debugging unordered_map/unordered_multimap implementation -*- C++ -*-
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@ -128,6 +128,7 @@ namespace __debug
{
// NB: DR 1204.
// NB: DR 675.
__glibcxx_check_self_move_assign(__x);
clear();
swap(__x);
return *this;
@ -542,6 +543,7 @@ namespace __debug
{
// NB: DR 1204.
// NB: DR 675.
__glibcxx_check_self_move_assign(__x);
clear();
swap(__x);
return *this;

View File

@ -1,6 +1,6 @@
// Debugging unordered_set/unordered_multiset implementation -*- C++ -*-
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@ -128,6 +128,7 @@ namespace __debug
{
// NB: DR 1204.
// NB: DR 675.
__glibcxx_check_self_move_assign(__x);
clear();
swap(__x);
return *this;
@ -537,6 +538,7 @@ namespace __debug
{
// NB: DR 1204.
// NB: DR 675.
__glibcxx_check_self_move_assign(__x);
clear();
swap(__x);
return *this;

View File

@ -158,6 +158,7 @@ namespace __debug
vector&
operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
{
__glibcxx_check_self_move_assign(__x);
_Base::operator=(std::move(__x));
this->_M_invalidate_all();
_M_update_guaranteed_capacity();

View File

@ -1,7 +1,7 @@
// Debugging mode support code -*- C++ -*-
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
// 2011 Free Software Foundation, Inc.
// 2011, 2012 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
@ -177,7 +177,8 @@ namespace __gnu_debug
// std::unordered_container::local_iterator
"attempt to compare local iterators from different unordered container"
" buckets",
"function requires a non-empty iterator range [%1.name;, %2.name;)"
"function requires a non-empty iterator range [%1.name;, %2.name;)",
"attempt to self move assign"
};
void

View File

@ -0,0 +1,35 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <debug/string>
void test01()
{
__gnu_debug::string s1;
auto it1 = s1.begin();
it1 = std::move(it1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,34 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <debug/string>
void test01()
{
__gnu_debug::string s1;
s1 = std::move(s1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,35 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <deque>
void test01()
{
std::deque<int> d1;
auto it1 = d1.begin();
it1 = std::move(it1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,34 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <deque>
void test01()
{
std::deque<int> d1;
d1 = std::move(d1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,35 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <forward_list>
void test01()
{
std::forward_list<int> fl1;
auto it1 = fl1.begin();
it1 = std::move(it1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,34 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <forward_list>
void test01()
{
std::forward_list<int> fl1;
fl1 = std::move(fl1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,35 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <list>
void test01()
{
std::list<int> l1;
auto it1 = l1.begin();
it1 = std::move(it1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,34 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <list>
void test01()
{
std::list<int> l1;
l1 = std::move(l1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,35 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <map>
void test01()
{
std::map<int, int> m1;
auto it1 = m1.begin();
it1 = std::move(it1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,34 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <map>
void test01()
{
std::map<int, int> m1;
m1 = std::move(m1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,35 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <map>
void test01()
{
std::multimap<int, int> mm1;
auto it1 = mm1.begin();
it1 = std::move(it1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,34 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <map>
void test01()
{
std::multimap<int, int> mm1;
mm1 = std::move(mm1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,35 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <set>
void test01()
{
std::multiset<int> ms1;
auto it1 = ms1.begin();
it1 = std::move(it1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,34 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <set>
void test01()
{
std::multiset<int> ms1;
ms1 = std::move(ms1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,35 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <set>
void test01()
{
std::set<int> s1;
auto it1 = s1.begin();
it1 = std::move(it1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,34 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <set>
void test01()
{
std::set<int> s1;
s1 = std::move(s1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,35 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <unordered_map>
void test01()
{
std::unordered_map<int, int> um1;
auto it1 = um1.begin();
it1 = std::move(it1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,34 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <unordered_map>
void test01()
{
std::unordered_map<int, int> um1;
um1 = std::move(um1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,35 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <unordered_map>
void test01()
{
std::unordered_multimap<int, int> umm1;
auto it1 = umm1.begin();
it1 = std::move(it1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,34 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <unordered_map>
void test01()
{
std::unordered_multimap<int, int> umm1;
umm1 = std::move(umm1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,35 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <unordered_set>
void test01()
{
std::unordered_multiset<int> ums1;
auto it1 = ums1.begin();
it1 = std::move(it1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,34 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <unordered_set>
void test01()
{
std::unordered_multiset<int> ums1;
ums1 = std::move(ums1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,35 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <unordered_set>
void test01()
{
std::unordered_set<int> us1;
auto it1 = us1.begin();
it1 = std::move(it1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,34 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <unordered_set>
void test01()
{
std::unordered_set<int> us1;
us1 = std::move(us1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,35 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <vector>
void test01()
{
std::vector<int> v1;
auto it1 = v1.begin();
it1 = std::move(it1);
}
int main()
{
test01();
return 0;
}

View File

@ -0,0 +1,34 @@
// Copyright (C) 2012 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 run { xfail *-*-* } }
#include <vector>
void test01()
{
std::vector<int> v1;
v1 = std::move(v1);
}
int main()
{
test01();
return 0;
}