Commit d7830142 by François Dumont Committed by Paolo Carlini

libstdc++.exp ([check_v3_target_debug_mode]): Fix so that it really detects when…

libstdc++.exp ([check_v3_target_debug_mode]): Fix so that it really detects when debug mode is activated.

2010-09-03  François Dumont <francois.cppdevs@free.fr>

        * testsuite/lib/libstdc++.exp ([check_v3_target_debug_mode]): Fix so
        that it really detects when debug mode is activated.
        * testsuite/util/debug/construct_neg.h, insert_neg.h, assign_neg.h:
        Remove, content moved...
        * testsuite/util/debug/checks.h: ... here. Modify checks to take the
	type of the container to test rather than an intermediate container
        type traits helper.
	* testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Update to
	use dg-require-debug-mode when necessary and use new check functions.
	* testsuite/23_containers/unordered_map/debug/construct1_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
	Likewise.
	* testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
	Likewise.
	* testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/construct4_neg.cc:
	Likewise.
	* testsuite/23_containers/unordered_map/debug/insert4_neg.cc: Likewise.
	* testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
	* testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
	* testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
	* testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
	* testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
	* testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
	* testsuite/23_containers/multimap/debug/construct4_neg.cc: Likewise.
	* testsuite/23_containers/multimap/debug/insert4_neg.cc: Likewise.
	* testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
	* testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
	* testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
	* testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
	* testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
	* testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
	* testsuite/23_containers/set/debug/construct4_neg.cc: Likewise.
	* testsuite/23_containers/set/debug/insert4_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multimap/debug/construct4_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multimap/debug/insert4_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
	* testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
	* testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
	* testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
	* testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
	* testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
	* testsuite/23_containers/vector/debug/construct4_neg.cc: Likewise.
	* testsuite/23_containers/vector/debug/assign4_neg.cc: Likewise.
	* testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
	* testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
	* testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
	* testsuite/23_containers/vector/debug/insert4_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/construct1_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_set/debug/construct2_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/construct3_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/construct4_neg.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/debug/insert4_neg.cc: Likewise.
	* testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
	* testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
	* testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
	* testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
	* testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
	* testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
	* testsuite/23_containers/deque/debug/construct4_neg.cc: Likewise.
	* testsuite/23_containers/deque/debug/assign4_neg.cc: Likewise.
	* testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
	* testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
	* testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
	* testsuite/23_containers/deque/debug/insert4_neg.cc: Likewise.
	* testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
	* testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
	* testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
	* testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
	* testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
	* testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
	* testsuite/23_containers/multiset/debug/construct4_neg.cc: Likewise.
	* testsuite/23_containers/multiset/debug/insert4_neg.cc: Likewise.
	* testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
	* testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
	* testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
	* testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
	* testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
	* testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
	* testsuite/23_containers/list/debug/construct4_neg.cc: Likewise.
	* testsuite/23_containers/list/debug/assign4_neg.cc: Likewise.
	* testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
	* testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
	* testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
	* testsuite/23_containers/list/debug/insert4_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multiset/debug/construct4_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multiset/debug/insert4_neg.cc: 
	Likewise.
	* testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
	* testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
	* testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
	* testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
	* testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
	* testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
	* testsuite/23_containers/map/debug/construct4_neg.cc: Likewise.
	* testsuite/23_containers/map/debug/insert4_neg.cc: Likewise.

	* testsuite/23_containers/unordered_map/debug/cont_traits.h: Remove.
	* testsuite/23_containers/unordered_map/debug/debug_cont_traits.h:
	Likewise.
	* testsuite/23_containers/multimap/debug/cont_traits.h: Likewise.
	* testsuite/23_containers/multimap/debug/debug_cont_traits.h: Likewise.
	* testsuite/23_containers/set/debug/cont_traits.h: Likewise.
	* testsuite/23_containers/set/debug/debug_cont_traits.h: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/cont_traits.h:
	Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	debug_cont_traits.h: Likewise.
	* testsuite/23_containers/vector/debug/cont_traits.h: Likewise.
	* testsuite/23_containers/vector/debug/debug_cont_traits.h: Likewise.
	* testsuite/23_containers/unordered_set/debug/cont_traits.h: Likewise.
	* testsuite/23_containers/unordered_set/debug/debug_cont_traits.h:
	Likewise.
	* testsuite/23_containers/deque/debug/cont_traits.h: Likewise.
	* testsuite/23_containers/deque/debug/debug_cont_traits.h: Likewise.
	* testsuite/23_containers/multiset/debug/cont_traits.h: Likewise.
	* testsuite/23_containers/multiset/debug/debug_cont_traits.h: Likewise.
	* testsuite/23_containers/list/debug/cont_traits.h: Likewise.
	* testsuite/23_containers/list/debug/debug_cont_traits.h: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/cont_traits.h: 
	Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	debug_cont_traits.h: Likewise.
	* testsuite/23_containers/map/debug/cont_traits.h: Likewise.
	* testsuite/23_containers/map/debug/debug_cont_traits.h: Likewise.

	* testsuite/21_strings/basic_string/element_access/char: Tidy.
	* testsuite/21_strings/basic_string/element_access/wchar_t: Likewise.

From-SVN: r163837
parent 124a8ce6
2010-09-03 François Dumont <francois.cppdevs@free.fr>
* testsuite/lib/libstdc++.exp ([check_v3_target_debug_mode]): Fix so
that it really detects when debug mode is activated.
* testsuite/util/debug/construct_neg.h, insert_neg.h, assign_neg.h:
Remove, content moved...
* testsuite/util/debug/checks.h: ... here. Modify checks to take the
type of the container to test rather than an intermediate container
type traits helper.
* testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Update to
use dg-require-debug-mode when necessary and use new check functions.
* testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
Likewise.
* testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
Likewise.
* testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
Likewise.
* testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/construct4_neg.cc:
Likewise.
* testsuite/23_containers/unordered_map/debug/insert4_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/construct4_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/insert4_neg.cc: Likewise.
* testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/set/debug/construct4_neg.cc: Likewise.
* testsuite/23_containers/set/debug/insert4_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/construct4_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/insert4_neg.cc:
Likewise.
* testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/construct4_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/assign4_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/insert4_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/construct4_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/insert4_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/construct4_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/assign4_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/insert4_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/construct4_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/insert4_neg.cc: Likewise.
* testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
* testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
* testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
* testsuite/23_containers/list/debug/construct4_neg.cc: Likewise.
* testsuite/23_containers/list/debug/assign4_neg.cc: Likewise.
* testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/list/debug/insert4_neg.cc: Likewise.
* testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/construct4_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/insert4_neg.cc:
Likewise.
* testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/map/debug/construct4_neg.cc: Likewise.
* testsuite/23_containers/map/debug/insert4_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/cont_traits.h: Remove.
* testsuite/23_containers/unordered_map/debug/debug_cont_traits.h:
Likewise.
* testsuite/23_containers/multimap/debug/cont_traits.h: Likewise.
* testsuite/23_containers/multimap/debug/debug_cont_traits.h: Likewise.
* testsuite/23_containers/set/debug/cont_traits.h: Likewise.
* testsuite/23_containers/set/debug/debug_cont_traits.h: Likewise.
* testsuite/23_containers/unordered_multimap/debug/cont_traits.h:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/
debug_cont_traits.h: Likewise.
* testsuite/23_containers/vector/debug/cont_traits.h: Likewise.
* testsuite/23_containers/vector/debug/debug_cont_traits.h: Likewise.
* testsuite/23_containers/unordered_set/debug/cont_traits.h: Likewise.
* testsuite/23_containers/unordered_set/debug/debug_cont_traits.h:
Likewise.
* testsuite/23_containers/deque/debug/cont_traits.h: Likewise.
* testsuite/23_containers/deque/debug/debug_cont_traits.h: Likewise.
* testsuite/23_containers/multiset/debug/cont_traits.h: Likewise.
* testsuite/23_containers/multiset/debug/debug_cont_traits.h: Likewise.
* testsuite/23_containers/list/debug/cont_traits.h: Likewise.
* testsuite/23_containers/list/debug/debug_cont_traits.h: Likewise.
* testsuite/23_containers/unordered_multiset/debug/cont_traits.h:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/
debug_cont_traits.h: Likewise.
* testsuite/23_containers/map/debug/cont_traits.h: Likewise.
* testsuite/23_containers/map/debug/debug_cont_traits.h: Likewise.
* testsuite/21_strings/basic_string/element_access/char: Tidy.
* testsuite/21_strings/basic_string/element_access/wchar_t: Likewise.
2010-09-02 Paolo Carlini <paolo.carlini@oracle.com> 2010-09-02 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/40974 PR libstdc++/40974
......
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
// { dg-options "-O0" }
// { dg-require-debug-mode "" } // { dg-require-debug-mode "" }
// { dg-options "-O0 -D_GLIBCXX_DEBUG" }
// Copyright (C) 2005, 2009, 2010 Free Software Foundation, Inc. // Copyright (C) 2005, 2009, 2010 Free Software Foundation, Inc.
// //
...@@ -19,7 +19,6 @@ ...@@ -19,7 +19,6 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
#include <string> #include <string>
// libstdc++/21674 // libstdc++/21674
......
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
// { dg-options "-O0" }
// { dg-require-debug-mode "" } // { dg-require-debug-mode "" }
// { dg-options "-O0 -D_GLIBCXX_DEBUG" }
// Copyright (C) 2005, 2009, 2010 Free Software Foundation, Inc. // Copyright (C) 2005, 2009, 2010 Free Software Foundation, Inc.
// //
...@@ -19,7 +19,6 @@ ...@@ -19,7 +19,6 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
#include <string> #include <string>
// libstdc++/21674 // libstdc++/21674
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/assign_neg.h> #include <deque>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_assign1<std::deque<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/assign_neg.h> #include <deque>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_assign2<std::deque<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/assign_neg.h> #include <deque>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_assign3<std::deque<int> >();
} }
int main() int main()
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
// //
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/assign_neg.h> #include <debug/deque>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_assign1<__gnu_debug::deque<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <deque>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_construct1<std::deque<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <deque>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_construct2<std::deque<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <deque>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_construct3<std::deque<int> >();
} }
int main() int main()
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
// //
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <debug/deque>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_construct1<__gnu_debug::deque<int> >();
} }
int main() int main()
......
// 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>
template<typename Type>
struct cont_traits
{
typedef std::deque<Type> cont_type;
typedef Type val_type;
static val_type
make_val(Type val)
{ return val; }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(cont.begin(), first, last); }
};
// 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 <debug/deque>
template<typename Type>
struct cont_traits
{
typedef __gnu_debug::deque<Type> cont_type;
typedef Type val_type;
static val_type
make_val(Type val)
{ return val; }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(cont.begin(), first, last); }
};
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <deque>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_insert1<std::deque<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <deque>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_insert2<std::deque<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <deque>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_insert3<std::deque<int> >();
} }
int main() int main()
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
// //
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <debug/deque>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_insert1<__gnu_debug::deque<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/assign_neg.h> #include <list>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_assign1<std::list<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/assign_neg.h> #include <list>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_assign2<std::list<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/assign_neg.h> #include <list>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_assign3<std::list<int> >();
} }
int main() int main()
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
// //
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/assign_neg.h> #include <debug/list>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_assign1<__gnu_debug::list<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <list>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_construct1<std::list<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <list>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_construct2<std::list<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <list>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_construct3<std::list<int> >();
} }
int main() int main()
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
// //
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <debug/list>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_construct1<__gnu_debug::list<int> >();
} }
int main() int main()
......
// 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>
template<typename Type>
struct cont_traits
{
typedef std::list<Type> cont_type;
typedef Type val_type;
static val_type
make_val(Type val)
{ return val; }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(cont.begin(), first, last); }
};
// 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 <debug/list>
template<typename Type>
struct cont_traits
{
typedef __gnu_debug::list<Type> cont_type;
typedef Type val_type;
static val_type
make_val(Type val)
{ return val; }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(cont.begin(), first, last); }
};
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <list>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_insert1<std::list<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <list>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_insert2<std::list<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <list>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_insert3<std::list<int> >();
} }
int main() int main()
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
// //
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <debug/list>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_insert1<__gnu_debug::list<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_construct1<std::map<int, int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_construct2<std::map<int, int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_construct3<std::map<int, int> >();
} }
int main() int main()
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
// //
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <debug/map>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_construct1<__gnu_debug::map<int, int> >();
} }
int main() int main()
......
// 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>
template<typename Type>
struct cont_traits
{
typedef std::map<Type, Type> cont_type;
typedef std::pair<Type, Type> val_type;
static val_type
make_val(Type val)
{ return val_type(val, val); }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(first, last); }
};
// 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 <debug/map>
template<typename Type>
struct cont_traits
{
typedef __gnu_debug::map<Type, Type> cont_type;
typedef std::pair<Type, Type> val_type;
static val_type
make_val(Type val)
{ return val_type(val, val); }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(first, last); }
};
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_insert1<std::map<int, int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_insert2<std::map<int, int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_insert3<std::map<int, int> >();
} }
int main() int main()
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
// //
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <debug/map>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_insert1<__gnu_debug::map<int, int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_construct1<std::multimap<int, int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_construct2<std::multimap<int, int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_construct3<std::multimap<int, int> >();
} }
int main() int main()
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
// //
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <debug/map>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_construct1<__gnu_debug::multimap<int, int> >();
} }
int main() int main()
......
// 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>
template<typename Type>
struct cont_traits
{
typedef std::multimap<Type, Type> cont_type;
typedef std::pair<Type, Type> val_type;
static val_type
make_val(Type val)
{ return val_type(val, val); }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(first, last); }
};
// 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 <debug/map>
template<typename Type>
struct cont_traits
{
typedef __gnu_debug::multimap<Type, Type> cont_type;
typedef std::pair<Type, Type> val_type;
static val_type
make_val(Type val)
{ return val_type(val, val); }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(first, last); }
};
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_insert1<std::multimap<int, int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_insert2<std::multimap<int, int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_insert3<std::multimap<int, int> >();
} }
int main() int main()
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
// //
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <debug/map>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_insert1<__gnu_debug::multimap<int, int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_construct1<std::multiset<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_construct2<std::multiset<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_construct3<std::multiset<int> >();
} }
int main() int main()
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
// //
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <debug/set>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_construct1<__gnu_debug::multiset<int> >();
} }
int main() int main()
......
// 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>
template<typename Type>
struct cont_traits
{
typedef std::multiset<Type> cont_type;
typedef Type val_type;
static val_type
make_val(Type val)
{ return val; }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(first, last); }
};
// 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 <debug/set>
template<typename Type>
struct cont_traits
{
typedef __gnu_debug::multiset<Type> cont_type;
typedef Type val_type;
static val_type
make_val(Type val)
{ return val; }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(first, last); }
};
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_insert1<std::multiset<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_insert2<std::multiset<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_insert3<std::multiset<int> >();
} }
int main() int main()
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
// //
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <debug/set>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_insert1<__gnu_debug::multiset<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_construct1<std::set<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_construct2<std::set<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_construct3<std::set<int> >();
} }
int main() int main()
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
// //
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <debug/set>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_construct1<__gnu_debug::set<int> >();
} }
int main() int main()
......
// 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>
template<typename Type>
struct cont_traits
{
typedef std::set<Type> cont_type;
typedef Type val_type;
static val_type
make_val(Type val)
{ return val; }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(first, last); }
};
// 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 <debug/set>
template<typename Type>
struct cont_traits
{
typedef __gnu_debug::set<Type> cont_type;
typedef Type val_type;
static val_type
make_val(Type val)
{ return val; }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(first, last); }
};
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_insert1<std::set<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_insert2<std::set<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_insert3<std::set<int> >();
} }
int main() int main()
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
// //
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <debug/set>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_insert1<__gnu_debug::set<int> >();
} }
int main() int main()
......
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <unordered_map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_construct1<std::unordered_map<int, int> >();
} }
int main() int main()
......
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <unordered_map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_construct2<std::unordered_map<int, int> >();
} }
int main() int main()
......
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <unordered_map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_construct3<std::unordered_map<int, int> >();
} }
int main() int main()
......
...@@ -18,12 +18,12 @@ ...@@ -18,12 +18,12 @@
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <debug/unordered_map>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_construct1<__gnu_debug::unordered_map<int, int> >();
} }
int main() int main()
......
// 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>
template<typename Type>
struct cont_traits
{
typedef std::unordered_map<Type, Type> cont_type;
typedef std::pair<Type, Type> val_type;
static val_type
make_val(Type val)
{ return val_type(val, val); }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(first, last); }
};
// 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 <debug/unordered_map>
template<typename Type>
struct cont_traits
{
typedef __gnu_debug::unordered_map<Type, Type> cont_type;
typedef std::pair<Type, Type> val_type;
static val_type
make_val(Type val)
{ return val_type(val, val); }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(first, last); }
};
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <unordered_map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_insert1<std::unordered_map<int, int> >();
} }
int main() int main()
......
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <unordered_map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_insert2<std::unordered_map<int, int> >();
} }
int main() int main()
......
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <unordered_map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_insert3<std::unordered_map<int, int> >();
} }
int main() int main()
......
...@@ -18,12 +18,12 @@ ...@@ -18,12 +18,12 @@
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <debug/unordered_map>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_insert1<__gnu_debug::unordered_map<int, int> >();
} }
int main() int main()
......
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <unordered_map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_construct1<std::unordered_multimap<int, int> >();
} }
int main() int main()
......
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <unordered_map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_construct2<std::unordered_multimap<int, int> >();
} }
int main() int main()
......
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <unordered_map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_construct3<std::unordered_multimap<int, int> >();
} }
int main() int main()
......
...@@ -18,12 +18,12 @@ ...@@ -18,12 +18,12 @@
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <debug/unordered_map>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_construct1<__gnu_debug::unordered_multimap<int, int> >();
} }
int main() int main()
......
// 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>
template<typename Type>
struct cont_traits
{
typedef std::unordered_multimap<Type, Type> cont_type;
typedef std::pair<Type, Type> val_type;
static val_type
make_val(Type val)
{ return val_type(val, val); }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(first, last); }
};
// 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 <debug/unordered_map>
template<typename Type>
struct cont_traits
{
typedef __gnu_debug::unordered_multimap<Type, Type> cont_type;
typedef std::pair<Type, Type> val_type;
static val_type
make_val(Type val)
{ return std::pair<Type, Type>(val, val); }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(first, last); }
};
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <unordered_map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_insert1<std::unordered_multimap<int, int> >();
} }
int main() int main()
......
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <unordered_map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_insert2<std::unordered_multimap<int, int> >();
} }
int main() int main()
......
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <unordered_map>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_insert3<std::unordered_multimap<int, int> >();
} }
int main() int main()
......
...@@ -18,12 +18,12 @@ ...@@ -18,12 +18,12 @@
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <debug/unordered_map>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_insert1<__gnu_debug::unordered_multimap<int, int> >();
} }
int main() int main()
......
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <unordered_set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_construct1<std::unordered_multiset<int> >();
} }
int main() int main()
......
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <unordered_set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_construct2<std::unordered_multiset<int> >();
} }
int main() int main()
......
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <unordered_set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_construct3<std::unordered_multiset<int> >();
} }
int main() int main()
......
...@@ -18,12 +18,12 @@ ...@@ -18,12 +18,12 @@
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <debug/unordered_set>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_construct1<__gnu_debug::unordered_multiset<int> >();
} }
int main() int main()
......
// 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>
template<typename Type>
struct cont_traits
{
typedef std::unordered_multiset<Type> cont_type;
typedef Type val_type;
static val_type
make_val(Type val)
{ return val; }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(first, last); }
};
// 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 <debug/unordered_set>
template<typename Type>
struct cont_traits
{
typedef __gnu_debug::unordered_multiset<Type> cont_type;
typedef Type val_type;
static val_type
make_val(Type val)
{ return val; }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(first, last); }
};
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <unordered_set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_insert1<std::unordered_multiset<int> >();
} }
int main() int main()
......
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <unordered_set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_insert2<std::unordered_multiset<int> >();
} }
int main() int main()
......
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <unordered_set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_insert3<std::unordered_multiset<int> >();
} }
int main() int main()
......
...@@ -18,12 +18,12 @@ ...@@ -18,12 +18,12 @@
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <debug/unordered_set>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_insert1<__gnu_debug::unordered_multiset<int> >();
} }
int main() int main()
......
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <unordered_set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_construct1<std::unordered_set<int> >();
} }
int main() int main()
......
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <unordered_set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_construct2<std::unordered_set<int> >();
} }
int main() int main()
......
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <unordered_set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_construct3<std::unordered_set<int> >();
} }
int main() int main()
......
...@@ -18,12 +18,12 @@ ...@@ -18,12 +18,12 @@
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <debug/unordered_set>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_construct1<__gnu_debug::unordered_set<int> >();
} }
int main() int main()
......
// 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>
template<typename Type>
struct cont_traits
{
typedef std::unordered_set<Type> cont_type;
typedef Type val_type;
static val_type
make_val(Type val)
{ return val; }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(first, last); }
};
// 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 <debug/unordered_set>
template<typename Type>
struct cont_traits
{
typedef __gnu_debug::unordered_set<Type> cont_type;
typedef Type val_type;
static val_type
make_val(Type val)
{ return val; }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(first, last); }
};
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <unordered_set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_insert1<std::unordered_set<int> >();
} }
int main() int main()
......
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <unordered_set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_insert2<std::unordered_set<int> >();
} }
int main() int main()
......
...@@ -15,15 +15,16 @@ ...@@ -15,15 +15,16 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <unordered_set>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_insert3<std::unordered_set<int> >();
} }
int main() int main()
......
...@@ -18,12 +18,12 @@ ...@@ -18,12 +18,12 @@
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <debug/unordered_set>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_insert1<__gnu_debug::unordered_set<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/assign_neg.h> #include <vector>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_assign1<std::vector<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/assign_neg.h> #include <vector>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_assign2<std::vector<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/assign_neg.h> #include <vector>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_assign3<std::vector<int> >();
} }
int main() int main()
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
// //
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/assign_neg.h> #include <debug/vector>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_assign1<__gnu_debug::vector<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <vector>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_construct1<std::vector<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <vector>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_construct2<std::vector<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <vector>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_construct3<std::vector<int> >();
} }
int main() int main()
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
// //
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/construct_neg.h> #include <debug/vector>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_construct1<__gnu_debug::vector<int> >();
} }
int main() int main()
......
// 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>
template<typename Type>
struct cont_traits
{
typedef std::vector<Type> cont_type;
typedef Type val_type;
static val_type
make_val(Type val)
{ return val; }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(cont.begin(), first, last); }
};
// 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 <debug/vector>
template<typename Type>
struct cont_traits
{
typedef __gnu_debug::vector<Type> cont_type;
typedef Type val_type;
static val_type
make_val(Type val)
{ return val; }
template<typename Iter>
static void
insert(cont_type& cont, Iter first, Iter last)
{ cont.insert(cont.begin(), first, last); }
};
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <vector>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check1<cont_traits>(); __gnu_test::check_insert1<std::vector<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <vector>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check2<cont_traits>(); __gnu_test::check_insert2<std::vector<int> >();
} }
int main() int main()
......
...@@ -15,14 +15,15 @@ ...@@ -15,14 +15,15 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// //
// { dg-require-debug-mode "" }
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <vector>
#include "cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
check3<cont_traits>(); __gnu_test::check_insert3<std::vector<int> >();
} }
int main() int main()
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
// //
// { dg-do run { xfail *-*-* } } // { dg-do run { xfail *-*-* } }
#include <debug/insert_neg.h> #include <debug/vector>
#include "debug_cont_traits.h" #include <debug/checks.h>
void test01() void test01()
{ {
debug_check1<cont_traits>(); __gnu_test::check_insert1<__gnu_debug::vector<int> >();
} }
int main() int main()
......
...@@ -947,21 +947,20 @@ proc check_v3_target_debug_mode { } { ...@@ -947,21 +947,20 @@ proc check_v3_target_debug_mode { } {
set et_debug_mode 0 set et_debug_mode 0
# Set up and compile a C++ test program that depends # Set up and compile a C++ test program that depends
# on debug mode working. # on debug mode activated.
set src debug_mode[pid].cc set src debug_mode[pid].cc
set exe debug_mode[pid].exe set exe debug_mode[pid].exe
set f [open $src "w"] set f [open $src "w"]
puts $f "#include <string>" puts $f "#include <string>"
puts $f "using namespace std;" puts $f "#ifndef _GLIBCXX_DEBUG"
puts $f "# error No debug mode"
puts $f "#endif"
puts $f "int main()" puts $f "int main()"
puts $f "{ return 0; }" puts $f "{ return 0; }"
close $f close $f
set cxxflags_saved $cxxflags
set cxxflags "$cxxflags -Werror -O0 -D_GLIBCXX_DEBUG"
set lines [v3_target_compile $src $exe executable ""] set lines [v3_target_compile $src $exe executable ""]
set cxxflags $cxxflags_saved
file delete $src file delete $src
if [string match "" $lines] { if [string match "" $lines] {
......
// 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 <list>
#include <testsuite_hooks.h>
// Check that invalid range of pointers is detected
template<template <typename> class ContTraits>
void
debug_check1()
{
bool test __attribute__((unused)) = true;
typedef ContTraits<int> Traits;
typedef typename Traits::cont_type cont_type;
typedef typename Traits::val_type val_type;
typedef std::vector<val_type> vector_type;
vector_type v;
for (int i = 0; i != 5; ++i)
v.push_back(Traits::make_val(i));
VERIFY(v.size() == 5);
const val_type* first = &v.front() + 1;
const val_type* last = first + 2;
cont_type c1;
c1.assign(first, last);
VERIFY(c1.size() == 2);
cont_type c2;
c2.assign(last, first); // Expected failure
}
template <template <typename> class ContTraits>
void
check1()
{
#ifdef _GLIBCXX_DEBUG
debug_check1<ContTraits>();
#else
__builtin_abort();
#endif
}
// Check that invalid range of debug random iterators is detected
template<template <typename> class ContTraits>
void
debug_check2()
{
bool test __attribute__((unused)) = true;
typedef ContTraits<int> Traits;
typedef typename Traits::cont_type cont_type;
typedef typename Traits::val_type val_type;
typedef std::vector<val_type> vector_type;
vector_type v;
for (int i = 0; i != 5; ++i)
v.push_back(Traits::make_val(i));
VERIFY(v.size() == 5);
typename vector_type::iterator first = v.begin() + 1;
typename vector_type::iterator last = first + 2;
cont_type c1;
c1.assign(first, last);
VERIFY(c1.size() == 2);
cont_type c2;
c2.assign(last, first); // Expected failure
}
template<template <typename> class ContTraits>
void
check2()
{
#ifdef _GLIBCXX_DEBUG
debug_check2<ContTraits>();
#else
__builtin_abort();
#endif
}
// Check that invalid range of debug !random debug iterators is detected
template<template <typename> class ContTraits>
void
debug_check3()
{
bool test __attribute__((unused)) = true;
typedef ContTraits<int> Traits;
typedef typename Traits::cont_type cont_type;
typedef typename Traits::val_type val_type;
typedef std::list<val_type> list_type;
list_type l;
for (int i = 0; i != 5; ++i)
l.push_back(Traits::make_val(i));
VERIFY(l.size() == 5);
typename list_type::iterator first = l.begin(); ++first;
typename list_type::iterator last = first; ++last; ++last;
cont_type c1;
c1.assign(first, last);
VERIFY(c1.size() == 2);
cont_type c2;
c2.assign(last, first); // Expected failure
}
template<template <typename> class ContTraits>
void
check3()
{
#ifdef _GLIBCXX_DEBUG
debug_check3<ContTraits>();
#else
__builtin_abort();
#endif
}
// 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 <deque>
#include <list>
#ifndef _GLIBCXX_DEBUG
# include <debug/vector>
# include <debug/deque>
# include <debug/list>
#endif
#include <testsuite_hooks.h>
namespace __gnu_test
{
template<typename _Tp>
struct CopyableValueType
{
typedef _Tp value_type;
};
template<typename _Tp1, typename _Tp2>
struct CopyableValueType<std::pair<const _Tp1, _Tp2> >
{
typedef std::pair<_Tp1, _Tp2> value_type;
};
template<typename _Tp>
struct generate_unique
{
typedef _Tp value_type;
operator value_type()
{
static value_type _S_;
++_S_;
return _S_;
}
};
template<typename _Tp1, typename _Tp2>
struct generate_unique<std::pair<_Tp1, _Tp2> >
{
typedef _Tp1 first_type;
typedef _Tp2 second_type;
typedef std::pair<_Tp1, _Tp2> pair_type;
operator pair_type()
{
static first_type _S_1;
static second_type _S_2;
++_S_1;
++_S_2;
return pair_type(_S_1, _S_2);
}
};
// Check that invalid range of pointers is detected
template<typename _Tp>
void
check_assign1()
{
bool test __attribute__((unused)) = true;
typedef _Tp cont_type;
typedef typename cont_type::value_type cont_val_type;
typedef typename CopyableValueType<cont_val_type>::value_type val_type;
typedef std::vector<val_type> vector_type;
generate_unique<val_type> gu;
vector_type v;
for (int i = 0; i != 5; ++i)
v.push_back(gu);
VERIFY(v.size() == 5);
const val_type* first = &v.front() + 1;
const val_type* last = first + 2;
cont_type c1;
c1.assign(first, last);
VERIFY(c1.size() == 2);
cont_type c2;
c2.assign(last, first); // Expected failure
}
// Check that invalid range of debug random iterators is detected
template<typename _Tp>
void
check_assign2()
{
bool test __attribute__((unused)) = true;
typedef _Tp cont_type;
typedef typename cont_type::value_type cont_val_type;
typedef typename CopyableValueType<cont_val_type>::value_type val_type;
typedef std::vector<val_type> vector_type;
generate_unique<val_type> gu;
vector_type v;
for (int i = 0; i != 5; ++i)
v.push_back(gu);
VERIFY(v.size() == 5);
typename vector_type::iterator first = v.begin() + 1;
typename vector_type::iterator last = first + 2;
cont_type c1;
c1.assign(first, last);
VERIFY(c1.size() == 2);
cont_type c2;
c2.assign(last, first); // Expected failure
}
// Check that invalid range of debug !random debug iterators is detected
template<typename _Tp>
void
check_assign3()
{
bool test __attribute__((unused)) = true;
typedef _Tp cont_type;
typedef typename cont_type::value_type cont_val_type;
typedef typename CopyableValueType<cont_val_type>::value_type val_type;
typedef std::list<val_type> list_type;
generate_unique<val_type> gu;
list_type l;
for (int i = 0; i != 5; ++i)
l.push_back(gu);
VERIFY(l.size() == 5);
typename list_type::iterator first = l.begin(); ++first;
typename list_type::iterator last = first; ++last; ++last;
cont_type c1;
c1.assign(first, last);
VERIFY(c1.size() == 2);
cont_type c2;
c2.assign(last, first); // Expected failure
}
// Check that invalid range of pointers is detected
template<typename _Tp>
void
check_construct1()
{
bool test __attribute__((unused)) = true;
typedef _Tp cont_type;
typedef typename cont_type::value_type cont_val_type;
typedef typename CopyableValueType<cont_val_type>::value_type val_type;
typedef std::vector<val_type> vector_type;
generate_unique<val_type> gu;
vector_type v;
for (int i = 0; i != 5; ++i)
v.push_back(gu);
VERIFY(v.size() == 5);
val_type *first = &v.front() + 1;
val_type *last = first + 2;
cont_type c1(first, last);
VERIFY(c1.size() == 2);
cont_type c2(last, first); // Expected failure
}
// Check that invalid range of debug random iterators is detected
template<typename _Tp>
void
check_construct2()
{
bool test __attribute__((unused)) = true;
typedef _Tp cont_type;
typedef typename cont_type::value_type cont_val_type;
typedef typename CopyableValueType<cont_val_type>::value_type val_type;
typedef std::vector<val_type> vector_type;
generate_unique<val_type> gu;
vector_type v;
for (int i = 0; i != 5; ++i)
v.push_back(gu);
VERIFY(v.size() == 5);
typename vector_type::iterator first = v.begin() + 1;
typename vector_type::iterator last = first + 2;
cont_type c1(first, last);
VERIFY(c1.size() == 2);
cont_type c2(last, first); // Expected failure
}
// Check that invalid range of debug not random iterators is detected
template<typename _Tp>
void
check_construct3()
{
bool test __attribute__((unused)) = true;
typedef _Tp cont_type;
typedef typename cont_type::value_type cont_val_type;
typedef typename CopyableValueType<cont_val_type>::value_type val_type;
typedef std::list<val_type> list_type;
generate_unique<val_type> gu;
list_type l;
for (int i = 0; i != 5; ++i)
l.push_back(gu);
VERIFY(l.size() == 5);
typename list_type::iterator first = l.begin(); ++first;
typename list_type::iterator last = first; ++last; ++last;
cont_type c1(first, last);
VERIFY(c1.size() == 2);
cont_type c2(last, first); // Expected failure
}
template <typename _Cont>
struct InsertRangeHelper
{
template <typename _It>
static void
Insert(_Cont& cont, _It first, _It last)
{ cont.insert(first, last); }
};
template <typename _Cont>
struct InsertRangeHelperAux
{
template <typename _It>
static void
Insert(_Cont& cont, _It first, _It last)
{ cont.insert(cont.begin(), first, last); }
};
template <typename _Tp1, typename _Tp2>
struct InsertRangeHelper<std::vector<_Tp1, _Tp2> >
: InsertRangeHelperAux<std::vector<_Tp1, _Tp2> >
{ };
template <typename _Tp1, typename _Tp2>
struct InsertRangeHelper<std::deque<_Tp1, _Tp2> >
: InsertRangeHelperAux<std::deque<_Tp1, _Tp2> >
{ };
template <typename _Tp1, typename _Tp2>
struct InsertRangeHelper<std::list<_Tp1, _Tp2> >
: InsertRangeHelperAux<std::list<_Tp1, _Tp2> >
{ };
#ifndef _GLIBCXX_DEBUG
template <typename _Tp1, typename _Tp2>
struct InsertRangeHelper<__gnu_debug::vector<_Tp1, _Tp2> >
: InsertRangeHelperAux<__gnu_debug::vector<_Tp1, _Tp2> >
{ };
template <typename _Tp1, typename _Tp2>
struct InsertRangeHelper<__gnu_debug::deque<_Tp1, _Tp2> >
: InsertRangeHelperAux<__gnu_debug::deque<_Tp1, _Tp2> >
{ };
template <typename _Tp1, typename _Tp2>
struct InsertRangeHelper<__gnu_debug::list<_Tp1, _Tp2> >
: InsertRangeHelperAux<__gnu_debug::list<_Tp1, _Tp2> >
{ };
#endif
template<typename _Tp>
void
check_insert1()
{
bool test __attribute__((unused)) = true;
typedef _Tp cont_type;
typedef typename cont_type::value_type cont_val_type;
typedef typename CopyableValueType<cont_val_type>::value_type val_type;
typedef std::vector<val_type> vector_type;
generate_unique<val_type> gu;
vector_type v;
for (int i = 0; i != 5; ++i)
v.push_back(gu);
VERIFY(v.size() == 5);
const val_type* first = &v.front() + 1;
const val_type* last = first + 2;
cont_type c1;
InsertRangeHelper<cont_type>::Insert(c1, first, last);
VERIFY(c1.size() == 2);
cont_type c2;
InsertRangeHelper<cont_type>::Insert(c2, last, first); // Expected failure
}
template<typename _Tp>
void
check_insert2()
{
bool test __attribute__((unused)) = true;
typedef _Tp cont_type;
typedef typename cont_type::value_type cont_val_type;
typedef typename CopyableValueType<cont_val_type>::value_type val_type;
typedef std::vector<val_type> vector_type;
generate_unique<val_type> gu;
vector_type v;
for (int i = 0; i != 5; ++i)
v.push_back(gu);
VERIFY(v.size() == 5);
typename vector_type::iterator first = v.begin() + 1;
typename vector_type::iterator last = first + 2;
cont_type c1;
InsertRangeHelper<cont_type>::Insert(c1, first, last);
VERIFY(c1.size() == 2);
cont_type c2;
InsertRangeHelper<cont_type>::Insert(c2, last, first); // Expected failure
}
template<typename _Tp>
void
check_insert3()
{
bool test __attribute__((unused)) = true;
typedef _Tp cont_type;
typedef typename cont_type::value_type cont_val_type;
typedef typename CopyableValueType<cont_val_type>::value_type val_type;
typedef std::list<val_type> list_type;
generate_unique<val_type> gu;
list_type l;
for (int i = 0; i != 5; ++i)
l.push_back(gu);
VERIFY(l.size() == 5);
typename list_type::iterator first = l.begin(); ++first;
typename list_type::iterator last = first; ++last; ++last;
cont_type c1;
InsertRangeHelper<cont_type>::Insert(c1, first, last);
VERIFY(c1.size() == 2);
cont_type c2;
InsertRangeHelper<cont_type>::Insert(c2, last, first); // Expected failure
}
}
// 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 <list>
#include <testsuite_hooks.h>
// Check that invalid range of pointers is detected
template<template<typename> class ContTraits>
void
debug_check1()
{
bool test __attribute__((unused)) = true;
typedef ContTraits<int> Traits;
typedef typename Traits::cont_type cont_type;
typedef typename Traits::val_type val_type;
typedef std::vector<val_type> vector_type;
vector_type v;
for (int i = 0; i != 5; ++i)
v.push_back(Traits::make_val(i));
VERIFY(v.size() == 5);
val_type *first = &v.front() + 1;
val_type *last = first + 2;
cont_type c1(first, last);
VERIFY(c1.size() == 2);
cont_type c2(last, first); // Expected failure
}
template<template<typename> class ContTraits>
void
check1()
{
#ifdef _GLIBCXX_DEBUG
debug_check1<ContTraits>();
#else
__builtin_abort();
#endif
}
// Check that invalid range of debug random iterators is detected
template<template<typename> class ContTraits>
void
debug_check2()
{
bool test __attribute__((unused)) = true;
typedef ContTraits<int> Traits;
typedef typename Traits::cont_type cont_type;
typedef typename Traits::val_type val_type;
typedef std::vector<val_type> vector_type;
vector_type v;
for (int i = 0; i != 5; ++i)
v.push_back(Traits::make_val(i));
VERIFY(v.size() == 5);
typename vector_type::iterator first = v.begin() + 1;
typename vector_type::iterator last = first + 2;
cont_type c1(first, last);
VERIFY(c1.size() == 2);
cont_type c2(last, first); // Expected failure
}
template<template<typename> class ContTraits>
void
check2()
{
#ifdef _GLIBCXX_DEBUG
debug_check2<ContTraits>();
#else
__builtin_abort();
#endif
}
// Check that invalid range of debug not random iterators is detected
template<template<typename> class ContTraits>
void
debug_check3()
{
bool test __attribute__((unused)) = true;
typedef ContTraits<int> Traits;
typedef typename Traits::cont_type cont_type;
typedef typename Traits::val_type val_type;
typedef std::list<val_type> list_type;
list_type l;
for (int i = 0; i != 5; ++i)
l.push_back(Traits::make_val(i));
VERIFY(l.size() == 5);
typename list_type::iterator first = l.begin(); ++first;
typename list_type::iterator last = first; ++last; ++last;
cont_type c1(first, last);
VERIFY(c1.size() == 2);
cont_type c2(last, first); // Expected failure
}
template<template<typename> class ContTraits>
void
check3()
{
#ifdef _GLIBCXX_DEBUG
debug_check3<ContTraits>();
#else
__builtin_abort();
#endif
}
// 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 <list>
#include <testsuite_hooks.h>
template<template <typename> class ContTraits>
void
debug_check1()
{
bool test __attribute__((unused)) = true;
typedef ContTraits<int> Traits;
typedef typename Traits::cont_type cont_type;
typedef typename Traits::val_type val_type;
typedef std::vector<val_type> vector_type;
vector_type v;
for (int i = 0; i != 5; ++i)
v.push_back(Traits::make_val(i));
VERIFY(v.size() == 5);
const val_type* first = &v.front() + 1;
const val_type* last = first + 2;
cont_type c1;
Traits::insert(c1, first, last);
VERIFY(c1.size() == 2);
cont_type c2;
Traits::insert(c2, last, first); // Expected failure
}
template<template <typename> class ContTraits>
void
check1()
{
#ifdef _GLIBCXX_DEBUG
debug_check1<ContTraits>();
#else
__builtin_abort();
#endif
}
template<template <typename> class ContTraits>
void
debug_check2()
{
bool test __attribute__((unused)) = true;
typedef ContTraits<int> Traits;
typedef typename Traits::cont_type cont_type;
typedef typename Traits::val_type val_type;
typedef std::vector<val_type> vector_type;
vector_type v;
for (int i = 0; i != 5; ++i)
v.push_back(Traits::make_val(i));
VERIFY(v.size() == 5);
typename vector_type::iterator first = v.begin() + 1;
typename vector_type::iterator last = first + 2;
cont_type c1;
Traits::insert(c1, first, last);
VERIFY(c1.size() == 2);
cont_type c2;
Traits::insert(c2, last, first); // Expected failure
}
template<template <typename> class ContTraits>
void
check2()
{
#ifdef _GLIBCXX_DEBUG
debug_check2<ContTraits>();
#else
__builtin_abort();
#endif
}
template<template <typename> class ContTraits>
void
debug_check3()
{
bool test __attribute__((unused)) = true;
typedef ContTraits<int> Traits;
typedef typename Traits::cont_type cont_type;
typedef typename Traits::val_type val_type;
typedef std::list<val_type> list_type;
list_type l;
for (int i = 0; i != 5; ++i)
l.push_back(Traits::make_val(i));
VERIFY(l.size() == 5);
typename list_type::iterator first = l.begin(); ++first;
typename list_type::iterator last = first; ++last; ++last;
cont_type c1;
Traits::insert(c1, first, last);
VERIFY(c1.size() == 2);
cont_type c2;
Traits::insert(c2, last, first); // Expected failure
}
template<template <typename> class ContTraits>
void
check3()
{
#ifdef _GLIBCXX_DEBUG
debug_check3<ContTraits>();
#else
__builtin_abort();
#endif
}
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