libstdc++.exp ([check_v3_target_debug_mode]): Fix so that it really detects when...
authorFrançois Dumont <francois.cppdevs@free.fr>
Fri, 3 Sep 2010 18:10:46 +0000 (20:10 +0200)
committerPaolo Carlini <paolo@gcc.gnu.org>
Fri, 3 Sep 2010 18:10:46 +0000 (18:10 +0000)
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

130 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/21674.cc
libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc
libstdc++-v3/testsuite/23_containers/deque/debug/assign1_neg.cc
libstdc++-v3/testsuite/23_containers/deque/debug/assign2_neg.cc
libstdc++-v3/testsuite/23_containers/deque/debug/assign3_neg.cc
libstdc++-v3/testsuite/23_containers/deque/debug/assign4_neg.cc
libstdc++-v3/testsuite/23_containers/deque/debug/construct1_neg.cc
libstdc++-v3/testsuite/23_containers/deque/debug/construct2_neg.cc
libstdc++-v3/testsuite/23_containers/deque/debug/construct3_neg.cc
libstdc++-v3/testsuite/23_containers/deque/debug/construct4_neg.cc
libstdc++-v3/testsuite/23_containers/deque/debug/cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/deque/debug/debug_cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/deque/debug/insert1_neg.cc
libstdc++-v3/testsuite/23_containers/deque/debug/insert2_neg.cc
libstdc++-v3/testsuite/23_containers/deque/debug/insert3_neg.cc
libstdc++-v3/testsuite/23_containers/deque/debug/insert4_neg.cc
libstdc++-v3/testsuite/23_containers/list/debug/assign1_neg.cc
libstdc++-v3/testsuite/23_containers/list/debug/assign2_neg.cc
libstdc++-v3/testsuite/23_containers/list/debug/assign3_neg.cc
libstdc++-v3/testsuite/23_containers/list/debug/assign4_neg.cc
libstdc++-v3/testsuite/23_containers/list/debug/construct1_neg.cc
libstdc++-v3/testsuite/23_containers/list/debug/construct2_neg.cc
libstdc++-v3/testsuite/23_containers/list/debug/construct3_neg.cc
libstdc++-v3/testsuite/23_containers/list/debug/construct4_neg.cc
libstdc++-v3/testsuite/23_containers/list/debug/cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/list/debug/debug_cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/list/debug/insert1_neg.cc
libstdc++-v3/testsuite/23_containers/list/debug/insert2_neg.cc
libstdc++-v3/testsuite/23_containers/list/debug/insert3_neg.cc
libstdc++-v3/testsuite/23_containers/list/debug/insert4_neg.cc
libstdc++-v3/testsuite/23_containers/map/debug/construct1_neg.cc
libstdc++-v3/testsuite/23_containers/map/debug/construct2_neg.cc
libstdc++-v3/testsuite/23_containers/map/debug/construct3_neg.cc
libstdc++-v3/testsuite/23_containers/map/debug/construct4_neg.cc
libstdc++-v3/testsuite/23_containers/map/debug/cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/map/debug/debug_cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/map/debug/insert1_neg.cc
libstdc++-v3/testsuite/23_containers/map/debug/insert2_neg.cc
libstdc++-v3/testsuite/23_containers/map/debug/insert3_neg.cc
libstdc++-v3/testsuite/23_containers/map/debug/insert4_neg.cc
libstdc++-v3/testsuite/23_containers/multimap/debug/construct1_neg.cc
libstdc++-v3/testsuite/23_containers/multimap/debug/construct2_neg.cc
libstdc++-v3/testsuite/23_containers/multimap/debug/construct3_neg.cc
libstdc++-v3/testsuite/23_containers/multimap/debug/construct4_neg.cc
libstdc++-v3/testsuite/23_containers/multimap/debug/cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/multimap/debug/debug_cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/multimap/debug/insert1_neg.cc
libstdc++-v3/testsuite/23_containers/multimap/debug/insert2_neg.cc
libstdc++-v3/testsuite/23_containers/multimap/debug/insert3_neg.cc
libstdc++-v3/testsuite/23_containers/multimap/debug/insert4_neg.cc
libstdc++-v3/testsuite/23_containers/multiset/debug/construct1_neg.cc
libstdc++-v3/testsuite/23_containers/multiset/debug/construct2_neg.cc
libstdc++-v3/testsuite/23_containers/multiset/debug/construct3_neg.cc
libstdc++-v3/testsuite/23_containers/multiset/debug/construct4_neg.cc
libstdc++-v3/testsuite/23_containers/multiset/debug/cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/multiset/debug/debug_cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/multiset/debug/insert1_neg.cc
libstdc++-v3/testsuite/23_containers/multiset/debug/insert2_neg.cc
libstdc++-v3/testsuite/23_containers/multiset/debug/insert3_neg.cc
libstdc++-v3/testsuite/23_containers/multiset/debug/insert4_neg.cc
libstdc++-v3/testsuite/23_containers/set/debug/construct1_neg.cc
libstdc++-v3/testsuite/23_containers/set/debug/construct2_neg.cc
libstdc++-v3/testsuite/23_containers/set/debug/construct3_neg.cc
libstdc++-v3/testsuite/23_containers/set/debug/construct4_neg.cc
libstdc++-v3/testsuite/23_containers/set/debug/cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/set/debug/debug_cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/set/debug/insert1_neg.cc
libstdc++-v3/testsuite/23_containers/set/debug/insert2_neg.cc
libstdc++-v3/testsuite/23_containers/set/debug/insert3_neg.cc
libstdc++-v3/testsuite/23_containers/set/debug/insert4_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct1_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct2_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct3_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct4_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_map/debug/cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/unordered_map/debug/debug_cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert1_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert2_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert3_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert4_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct4_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/debug_cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert4_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct4_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/debug_cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert4_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct1_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct2_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct3_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct4_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_set/debug/cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/unordered_set/debug/debug_cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert1_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert2_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert3_neg.cc
libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert4_neg.cc
libstdc++-v3/testsuite/23_containers/vector/debug/assign1_neg.cc
libstdc++-v3/testsuite/23_containers/vector/debug/assign2_neg.cc
libstdc++-v3/testsuite/23_containers/vector/debug/assign3_neg.cc
libstdc++-v3/testsuite/23_containers/vector/debug/assign4_neg.cc
libstdc++-v3/testsuite/23_containers/vector/debug/construct1_neg.cc
libstdc++-v3/testsuite/23_containers/vector/debug/construct2_neg.cc
libstdc++-v3/testsuite/23_containers/vector/debug/construct3_neg.cc
libstdc++-v3/testsuite/23_containers/vector/debug/construct4_neg.cc
libstdc++-v3/testsuite/23_containers/vector/debug/cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/vector/debug/debug_cont_traits.h [deleted file]
libstdc++-v3/testsuite/23_containers/vector/debug/insert1_neg.cc
libstdc++-v3/testsuite/23_containers/vector/debug/insert2_neg.cc
libstdc++-v3/testsuite/23_containers/vector/debug/insert3_neg.cc
libstdc++-v3/testsuite/23_containers/vector/debug/insert4_neg.cc
libstdc++-v3/testsuite/lib/libstdc++.exp
libstdc++-v3/testsuite/util/debug/assign_neg.h [deleted file]
libstdc++-v3/testsuite/util/debug/checks.h [new file with mode: 0644]
libstdc++-v3/testsuite/util/debug/construct_neg.h [deleted file]
libstdc++-v3/testsuite/util/debug/insert_neg.h [deleted file]

index 79cfc04..45a8f01 100644 (file)
@@ -1,3 +1,170 @@
+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>
 
        PR libstdc++/40974
index 03d5433..c8a8b93 100644 (file)
@@ -1,6 +1,6 @@
 // { dg-do run { xfail *-*-* } }
+// { dg-options "-O0" }
 // { dg-require-debug-mode "" }
-// { dg-options "-O0 -D_GLIBCXX_DEBUG" }
 
 // Copyright (C) 2005, 2009, 2010 Free Software Foundation, Inc.
 //
@@ -19,7 +19,6 @@
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-
 #include <string>
 
 // libstdc++/21674
index fe4a249..9504646 100644 (file)
@@ -1,6 +1,6 @@
 // { dg-do run { xfail *-*-* } }
+// { dg-options "-O0" }
 // { dg-require-debug-mode "" }
-// { dg-options "-O0 -D_GLIBCXX_DEBUG" }
 
 // Copyright (C) 2005, 2009, 2010 Free Software Foundation, Inc.
 //
@@ -19,7 +19,6 @@
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-
 #include <string>
 
 // libstdc++/21674
index b28e987..9a4d7d4 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/assign_neg.h>
-#include "cont_traits.h"
+#include <deque>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_assign1<std::deque<int> >();
 }
 
 int main()
index cfff8ac..32eda87 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/assign_neg.h>
-#include "cont_traits.h"
+#include <deque>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_assign2<std::deque<int> >();
 }
 
 int main()
index cfd0bb0..3d2b15e 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/assign_neg.h>
-#include "cont_traits.h"
+#include <deque>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_assign3<std::deque<int> >();
 }
 
 int main()
index 115580d..7b62041 100644 (file)
 //
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/assign_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/deque>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_assign1<__gnu_debug::deque<int> >();
 }
 
 int main()
index 791c1a2..6268951 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <deque>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_construct1<std::deque<int> >();
 }
 
 int main()
index 6cac9f0..3b8d775 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <deque>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_construct2<std::deque<int> >();
 }
 
 int main()
index 752c95c..1187cf8 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <deque>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_construct3<std::deque<int> >();
 }
 
 int main()
index 9ee467e..7d7906d 100644 (file)
 //
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/deque>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_construct1<__gnu_debug::deque<int> >();
 }
 
 int main()
diff --git a/libstdc++-v3/testsuite/23_containers/deque/debug/cont_traits.h b/libstdc++-v3/testsuite/23_containers/deque/debug/cont_traits.h
deleted file mode 100644 (file)
index 13ab4f9..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
diff --git a/libstdc++-v3/testsuite/23_containers/deque/debug/debug_cont_traits.h b/libstdc++-v3/testsuite/23_containers/deque/debug/debug_cont_traits.h
deleted file mode 100644 (file)
index b4dda92..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
index d04b441..38b4f55 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <deque>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_insert1<std::deque<int> >();
 }
 
 int main()
index 106c64a..5aa7efa 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <deque>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_insert2<std::deque<int> >();
 }
 
 int main()
index 9d3d7b1..bd854ad 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <deque>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_insert3<std::deque<int> >();
 }
 
 int main()
index fc49ae6..ff88760 100644 (file)
 //
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/deque>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_insert1<__gnu_debug::deque<int> >();
 }
 
 int main()
index b28e987..e7b0e5c 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/assign_neg.h>
-#include "cont_traits.h"
+#include <list>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_assign1<std::list<int> >();
 }
 
 int main()
index cfff8ac..1bd6c2f 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/assign_neg.h>
-#include "cont_traits.h"
+#include <list>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_assign2<std::list<int> >();
 }
 
 int main()
index cfd0bb0..7a40d31 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/assign_neg.h>
-#include "cont_traits.h"
+#include <list>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_assign3<std::list<int> >();
 }
 
 int main()
index 115580d..bde7b92 100644 (file)
 //
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/assign_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/list>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_assign1<__gnu_debug::list<int> >();
 }
 
 int main()
index 791c1a2..cbd0455 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <list>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_construct1<std::list<int> >();
 }
 
 int main()
index 6cac9f0..40fdf43 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <list>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_construct2<std::list<int> >();
 }
 
 int main()
index 752c95c..5000f5a 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <list>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_construct3<std::list<int> >();
 }
 
 int main()
index 9ee467e..29843ea 100644 (file)
 //
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/list>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_construct1<__gnu_debug::list<int> >();
 }
 
 int main()
diff --git a/libstdc++-v3/testsuite/23_containers/list/debug/cont_traits.h b/libstdc++-v3/testsuite/23_containers/list/debug/cont_traits.h
deleted file mode 100644 (file)
index 662a97e..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
diff --git a/libstdc++-v3/testsuite/23_containers/list/debug/debug_cont_traits.h b/libstdc++-v3/testsuite/23_containers/list/debug/debug_cont_traits.h
deleted file mode 100644 (file)
index 4993735..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
index d04b441..aa35b46 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <list>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_insert1<std::list<int> >();
 }
 
 int main()
index 106c64a..dc84fdd 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <list>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_insert2<std::list<int> >();
 }
 
 int main()
index 9d3d7b1..aa49108 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <list>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_insert3<std::list<int> >();
 }
 
 int main()
index fc49ae6..ade2806 100644 (file)
 //
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/list>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_insert1<__gnu_debug::list<int> >();
 }
 
 int main()
index 791c1a2..72adcf4 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_construct1<std::map<int, int> >();
 }
 
 int main()
index 6cac9f0..a9cb0e3 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_construct2<std::map<int, int> >();
 }
 
 int main()
index 752c95c..7f88827 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_construct3<std::map<int, int> >();
 }
 
 int main()
index 9ee467e..ce2eccc 100644 (file)
 //
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/map>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_construct1<__gnu_debug::map<int, int> >();
 }
 
 int main()
diff --git a/libstdc++-v3/testsuite/23_containers/map/debug/cont_traits.h b/libstdc++-v3/testsuite/23_containers/map/debug/cont_traits.h
deleted file mode 100644 (file)
index 739ee7a..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
diff --git a/libstdc++-v3/testsuite/23_containers/map/debug/debug_cont_traits.h b/libstdc++-v3/testsuite/23_containers/map/debug/debug_cont_traits.h
deleted file mode 100644 (file)
index 34acf37..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
index d04b441..7b868a7 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_insert1<std::map<int, int> >();
 }
 
 int main()
index 106c64a..93c6c7e 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_insert2<std::map<int, int> >();
 }
 
 int main()
index 9d3d7b1..2802a0d 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_insert3<std::map<int, int> >();
 }
 
 int main()
index fc49ae6..a68d601 100644 (file)
 //
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/map>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_insert1<__gnu_debug::map<int, int> >();
 }
 
 int main()
index 791c1a2..13f5763 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_construct1<std::multimap<int, int> >();
 }
 
 int main()
index 6cac9f0..9c389e1 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_construct2<std::multimap<int, int> >();
 }
 
 int main()
index 752c95c..b5a5288 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_construct3<std::multimap<int, int> >();
 }
 
 int main()
index 9ee467e..7c267f4 100644 (file)
 //
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/map>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_construct1<__gnu_debug::multimap<int, int> >();
 }
 
 int main()
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/debug/cont_traits.h b/libstdc++-v3/testsuite/23_containers/multimap/debug/cont_traits.h
deleted file mode 100644 (file)
index 495e3e4..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/debug/debug_cont_traits.h b/libstdc++-v3/testsuite/23_containers/multimap/debug/debug_cont_traits.h
deleted file mode 100644 (file)
index 98bd1f2..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
index d04b441..879af77 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_insert1<std::multimap<int, int> >();
 }
 
 int main()
index 106c64a..883ff14 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_insert2<std::multimap<int, int> >();
 }
 
 int main()
index 9d3d7b1..f75efb5 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_insert3<std::multimap<int, int> >();
 }
 
 int main()
index fc49ae6..0e5102b 100644 (file)
 //
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/map>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_insert1<__gnu_debug::multimap<int, int> >();
 }
 
 int main()
index 791c1a2..04b0e33 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_construct1<std::multiset<int> >();
 }
 
 int main()
index 6cac9f0..d7dd965 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_construct2<std::multiset<int> >();
 }
 
 int main()
index 752c95c..cc3e147 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_construct3<std::multiset<int> >();
 }
 
 int main()
index 9ee467e..181f4f9 100644 (file)
 //
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/set>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_construct1<__gnu_debug::multiset<int> >();
 }
 
 int main()
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/debug/cont_traits.h b/libstdc++-v3/testsuite/23_containers/multiset/debug/cont_traits.h
deleted file mode 100644 (file)
index 4e06da2..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/debug/debug_cont_traits.h b/libstdc++-v3/testsuite/23_containers/multiset/debug/debug_cont_traits.h
deleted file mode 100644 (file)
index d5bafe4..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
index d04b441..32f20a9 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_insert1<std::multiset<int> >();
 }
 
 int main()
index 106c64a..699f0dd 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_insert2<std::multiset<int> >();
 }
 
 int main()
index 9d3d7b1..92f864d 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_insert3<std::multiset<int> >();
 }
 
 int main()
index fc49ae6..a088107 100644 (file)
 //
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/set>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_insert1<__gnu_debug::multiset<int> >();
 }
 
 int main()
index 791c1a2..424eb8b 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_construct1<std::set<int> >();
 }
 
 int main()
index 6cac9f0..d581992 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_construct2<std::set<int> >();
 }
 
 int main()
index 752c95c..1cc7dd2 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_construct3<std::set<int> >();
 }
 
 int main()
index 9ee467e..d464aab 100644 (file)
 //
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/set>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_construct1<__gnu_debug::set<int> >();
 }
 
 int main()
diff --git a/libstdc++-v3/testsuite/23_containers/set/debug/cont_traits.h b/libstdc++-v3/testsuite/23_containers/set/debug/cont_traits.h
deleted file mode 100644 (file)
index fbcc0ff..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
diff --git a/libstdc++-v3/testsuite/23_containers/set/debug/debug_cont_traits.h b/libstdc++-v3/testsuite/23_containers/set/debug/debug_cont_traits.h
deleted file mode 100644 (file)
index 5f69376..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
index d04b441..3192ff9 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_insert1<std::set<int> >();
 }
 
 int main()
index 106c64a..d0d16cf 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_insert2<std::set<int> >();
 }
 
 int main()
index 9d3d7b1..9eaf6f8 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_insert3<std::set<int> >();
 }
 
 int main()
index fc49ae6..c2424d2 100644 (file)
 //
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/set>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_insert1<__gnu_debug::set<int> >();
 }
 
 int main()
index a939d9e..31961f7 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <unordered_map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_construct1<std::unordered_map<int, int> >();
 }
 
 int main()
index 697db52..560651a 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <unordered_map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_construct2<std::unordered_map<int, int> >();
 }
 
 int main()
index 899f295..7d57272 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <unordered_map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_construct3<std::unordered_map<int, int> >();
 }
 
 int main()
index e2d0efd..e37cab2 100644 (file)
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/unordered_map>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_construct1<__gnu_debug::unordered_map<int, int> >();
 }
 
 int main()
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/cont_traits.h b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/cont_traits.h
deleted file mode 100644 (file)
index 262b358..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/debug_cont_traits.h b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/debug_cont_traits.h
deleted file mode 100644 (file)
index 7b3b8c3..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
index e9bb1cf..f3d06bf 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <unordered_map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_insert1<std::unordered_map<int, int> >();
 }
 
 int main()
index c42b8b5..09d55e1 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <unordered_map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_insert2<std::unordered_map<int, int> >();
 }
 
 int main()
index e8d9e9b..41af759 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <unordered_map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_insert3<std::unordered_map<int, int> >();
 }
 
 int main()
index 9f3d567..6239431 100644 (file)
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/unordered_map>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_insert1<__gnu_debug::unordered_map<int, int> >();
 }
 
 int main()
index a939d9e..7a17e4c 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <unordered_map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_construct1<std::unordered_multimap<int, int> >();
 }
 
 int main()
index 697db52..8f2c1a6 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <unordered_map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_construct2<std::unordered_multimap<int, int> >();
 }
 
 int main()
index 899f295..3fb4be7 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <unordered_map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_construct3<std::unordered_multimap<int, int> >();
 }
 
 int main()
index e2d0efd..000745e 100644 (file)
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/unordered_map>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_construct1<__gnu_debug::unordered_multimap<int, int> >();
 }
 
 int main()
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/cont_traits.h b/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/cont_traits.h
deleted file mode 100644 (file)
index 1212274..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/debug_cont_traits.h b/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/debug_cont_traits.h
deleted file mode 100644 (file)
index d66594d..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
index e9bb1cf..e36a0a1 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <unordered_map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_insert1<std::unordered_multimap<int, int> >();
 }
 
 int main()
index c42b8b5..04a488b 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <unordered_map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_insert2<std::unordered_multimap<int, int> >();
 }
 
 int main()
index e8d9e9b..1c7f60f 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <unordered_map>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_insert3<std::unordered_multimap<int, int> >();
 }
 
 int main()
index 9f3d567..988c312 100644 (file)
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/unordered_map>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_insert1<__gnu_debug::unordered_multimap<int, int> >();
 }
 
 int main()
index a939d9e..7d89890 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <unordered_set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_construct1<std::unordered_multiset<int> >();
 }
 
 int main()
index 697db52..ea6857a 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <unordered_set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_construct2<std::unordered_multiset<int> >();
 }
 
 int main()
index 899f295..20a4659 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <unordered_set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_construct3<std::unordered_multiset<int> >();
 }
 
 int main()
index e2d0efd..4fbb4fa 100644 (file)
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/unordered_set>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_construct1<__gnu_debug::unordered_multiset<int> >();
 }
 
 int main()
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/cont_traits.h b/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/cont_traits.h
deleted file mode 100644 (file)
index b82d737..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/debug_cont_traits.h b/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/debug_cont_traits.h
deleted file mode 100644 (file)
index 7053683..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
index e9bb1cf..c65c608 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <unordered_set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_insert1<std::unordered_multiset<int> >();
 }
 
 int main()
index c42b8b5..6496624 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <unordered_set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_insert2<std::unordered_multiset<int> >();
 }
 
 int main()
index e8d9e9b..b12fe57 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <unordered_set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_insert3<std::unordered_multiset<int> >();
 }
 
 int main()
index 9f3d567..0f2acea 100644 (file)
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/unordered_set>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_insert1<__gnu_debug::unordered_multiset<int> >();
 }
 
 int main()
index a939d9e..e37e520 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <unordered_set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_construct1<std::unordered_set<int> >();
 }
 
 int main()
index 697db52..90e5d55 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <unordered_set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_construct2<std::unordered_set<int> >();
 }
 
 int main()
index 899f295..e7222a9 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <unordered_set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_construct3<std::unordered_set<int> >();
 }
 
 int main()
index e2d0efd..8eb0304 100644 (file)
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/unordered_set>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_construct1<__gnu_debug::unordered_set<int> >();
 }
 
 int main()
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/debug/cont_traits.h b/libstdc++-v3/testsuite/23_containers/unordered_set/debug/cont_traits.h
deleted file mode 100644 (file)
index 7709f49..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/debug/debug_cont_traits.h b/libstdc++-v3/testsuite/23_containers/unordered_set/debug/debug_cont_traits.h
deleted file mode 100644 (file)
index f4d6e9b..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
index e9bb1cf..ab6942c 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <unordered_set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_insert1<std::unordered_set<int> >();
 }
 
 int main()
index c42b8b5..81be39d 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <unordered_set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_insert2<std::unordered_set<int> >();
 }
 
 int main()
index e8d9e9b..2d3b7e4 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <unordered_set>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_insert3<std::unordered_set<int> >();
 }
 
 int main()
index 9f3d567..96d6a2a 100644 (file)
 // { dg-options "-std=gnu++0x" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/unordered_set>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_insert1<__gnu_debug::unordered_set<int> >();
 }
 
 int main()
index b28e987..ff9c5a2 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/assign_neg.h>
-#include "cont_traits.h"
+#include <vector>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_assign1<std::vector<int> >();
 }
 
 int main()
index cfff8ac..4384a97 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/assign_neg.h>
-#include "cont_traits.h"
+#include <vector>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_assign2<std::vector<int> >();
 }
 
 int main()
index cfd0bb0..9cb7ea6 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/assign_neg.h>
-#include "cont_traits.h"
+#include <vector>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_assign3<std::vector<int> >();
 }
 
 int main()
index 115580d..8e3d3be 100644 (file)
 //
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/assign_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/vector>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_assign1<__gnu_debug::vector<int> >();
 }
 
 int main()
index 791c1a2..dc0b4a2 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <vector>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_construct1<std::vector<int> >();
 }
 
 int main()
index 6cac9f0..13757a1 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <vector>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_construct2<std::vector<int> >();
 }
 
 int main()
index 752c95c..661af43 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "cont_traits.h"
+#include <vector>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_construct3<std::vector<int> >();
 }
 
 int main()
index 9ee467e..ec33a58 100644 (file)
 //
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/construct_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/vector>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_construct1<__gnu_debug::vector<int> >();
 }
 
 int main()
diff --git a/libstdc++-v3/testsuite/23_containers/vector/debug/cont_traits.h b/libstdc++-v3/testsuite/23_containers/vector/debug/cont_traits.h
deleted file mode 100644 (file)
index cdd9a08..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
diff --git a/libstdc++-v3/testsuite/23_containers/vector/debug/debug_cont_traits.h b/libstdc++-v3/testsuite/23_containers/vector/debug/debug_cont_traits.h
deleted file mode 100644 (file)
index 204caff..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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); }
-  };
index d04b441..2ec0d9e 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <vector>
+#include <debug/checks.h>
 
 void test01()
 {
-  check1<cont_traits>();
+  __gnu_test::check_insert1<std::vector<int> >();
 }
 
 int main()
index 106c64a..011ad4c 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <vector>
+#include <debug/checks.h>
 
 void test01()
 {
-  check2<cont_traits>();
+  __gnu_test::check_insert2<std::vector<int> >();
 }
 
 int main()
index 9d3d7b1..4dab133 100644 (file)
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-debug-mode "" }
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "cont_traits.h"
+#include <vector>
+#include <debug/checks.h>
 
 void test01()
 {
-  check3<cont_traits>();
+  __gnu_test::check_insert3<std::vector<int> >();
 }
 
 int main()
index fc49ae6..684ebb5 100644 (file)
 //
 // { dg-do run { xfail *-*-* } }
 
-#include <debug/insert_neg.h>
-#include "debug_cont_traits.h"
+#include <debug/vector>
+#include <debug/checks.h>
 
 void test01()
 {
-  debug_check1<cont_traits>();
+  __gnu_test::check_insert1<__gnu_debug::vector<int> >();
 }
 
 int main()
index 33dc120..13dad49 100644 (file)
@@ -947,21 +947,20 @@ proc check_v3_target_debug_mode { } {
        set et_debug_mode 0
 
        # 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 exe debug_mode[pid].exe
 
        set f [open $src "w"]
        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 "{ return 0; }"
        close $f
 
-       set cxxflags_saved $cxxflags
-       set cxxflags "$cxxflags -Werror -O0 -D_GLIBCXX_DEBUG"
        set lines [v3_target_compile $src $exe executable ""]
-       set cxxflags $cxxflags_saved
        file delete $src
 
        if [string match "" $lines] {
diff --git a/libstdc++-v3/testsuite/util/debug/assign_neg.h b/libstdc++-v3/testsuite/util/debug/assign_neg.h
deleted file mode 100644 (file)
index 332c716..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-// 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
-  }
diff --git a/libstdc++-v3/testsuite/util/debug/checks.h b/libstdc++-v3/testsuite/util/debug/checks.h
new file mode 100644 (file)
index 0000000..b42ef1a
--- /dev/null
@@ -0,0 +1,379 @@
+// 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
+    }
+}
+
diff --git a/libstdc++-v3/testsuite/util/debug/construct_neg.h b/libstdc++-v3/testsuite/util/debug/construct_neg.h
deleted file mode 100644 (file)
index 78736d3..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-// 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
-  }
diff --git a/libstdc++-v3/testsuite/util/debug/insert_neg.h b/libstdc++-v3/testsuite/util/debug/insert_neg.h
deleted file mode 100644 (file)
index 7c2634d..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-// 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
-  }