+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
// { 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.
//
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-
#include <string>
// libstdc++/21674
// { 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.
//
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-
#include <string>
// libstdc++/21674
// 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()
// 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()
// 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()
//
// { 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()
// 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()
// 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()
// 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()
//
// { 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()
+++ /dev/null
-// 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); }
- };
+++ /dev/null
-// 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); }
- };
// 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()
// 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()
// 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()
//
// { 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()
// 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()
// 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()
// 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()
//
// { 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()
// 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()
// 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()
// 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()
//
// { 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()
+++ /dev/null
-// 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); }
- };
+++ /dev/null
-// 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); }
- };
// 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()
// 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()
// 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()
//
// { 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()
// 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()
// 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()
// 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()
//
// { 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()
+++ /dev/null
-// 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); }
- };
+++ /dev/null
-// 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); }
- };
// 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()
// 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()
// 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()
//
// { 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()
// 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()
// 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()
// 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()
//
// { 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()
+++ /dev/null
-// 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); }
- };
+++ /dev/null
-// 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); }
- };
// 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()
// 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()
// 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()
//
// { 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()
// 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()
// 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()
// 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()
//
// { 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()
+++ /dev/null
-// 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); }
- };
+++ /dev/null
-// 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); }
- };
// 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()
// 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()
// 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()
//
// { 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()
// 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()
// 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()
// 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()
//
// { 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()
+++ /dev/null
-// 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); }
- };
+++ /dev/null
-// 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); }
- };
// 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()
// 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()
// 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()
//
// { 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()
// 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()
// 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()
// 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()
// { 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()
+++ /dev/null
-// 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); }
- };
+++ /dev/null
-// 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); }
- };
// 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()
// 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()
// 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()
// { 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()
// 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()
// 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()
// 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()
// { 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()
+++ /dev/null
-// 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); }
- };
+++ /dev/null
-// 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); }
- };
// 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()
// 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()
// 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()
// { 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()
// 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()
// 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()
// 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()
// { 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()
+++ /dev/null
-// 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); }
- };
+++ /dev/null
-// 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); }
- };
// 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()
// 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()
// 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()
// { 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()
// 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()
// 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()
// 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()
// { 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()
+++ /dev/null
-// 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); }
- };
+++ /dev/null
-// 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); }
- };
// 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()
// 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()
// 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()
// { 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()
// 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()
// 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()
// 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()
//
// { 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()
// 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()
// 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()
// 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()
//
// { 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()
+++ /dev/null
-// 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); }
- };
+++ /dev/null
-// 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); }
- };
// 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()
// 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()
// 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()
//
// { 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()
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] {
+++ /dev/null
-// 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
- }
--- /dev/null
+// 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
+ }
+}
+
+++ /dev/null
-// 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
- }
+++ /dev/null
-// 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
- }