formatter.h (_Debug_msg_id): Add __msg_bucket_index_oob.
authorFrançois Dumont <fdumont@gcc.gnu.org>
Tue, 16 Oct 2012 19:57:03 +0000 (19:57 +0000)
committerFrançois Dumont <fdumont@gcc.gnu.org>
Tue, 16 Oct 2012 19:57:03 +0000 (19:57 +0000)
2012-10-16  François Dumont  <fdumont@gcc.gnu.org>

* include/debug/formatter.h (_Debug_msg_id): Add
__msg_bucket_index_oob.
* include/debug/macros.h (__glibcxx_check_bucket_index): New.
* include/debug/unordered_set (unordered_set<>::begin(size_type)):
Add check on bucket index.
(unordered_set<>::begin(size_type) const): Likewise.
(unordered_set<>::cbegin(size_type) const): Likewise.
(unordered_set<>::end(size_type)): Likewise.
(unordered_set<>::end(size_type) const): Likewise.
(unordered_set<>::cend(size_type) const): Likewise.
(unordered_set<>::bucket_size(size_type)): Likewise.
(unordered_multiset<>::begin(size_type)): Likewise.
(unordered_multiset<>::begin(size_type) const): Likewise.
(unordered_multiset<>::cbegin(size_type) const): Likewise.
(unordered_multiset<>::end(size_type)): Likewise.
(unordered_multiset<>::end(size_type) const): Likewise.
(unordered_multiset<>::cend(size_type) const): Likewise.
(unordered_multiset<>::bucket_size(size_type)): Likewise.
* include/debug/unordered_map (unordered_map<>::begin(size_type)):
Likewise.
(unordered_map<>::begin(size_type) const): Likewise.
(unordered_map<>::cbegin(size_type) const): Likewise.
(unordered_map<>::end(size_type)): Likewise.
(unordered_map<>::end(size_type) const): Likewise.
(unordered_map<>::cend(size_type) const): Likewise.
(unordered_map<>::bucket_size(size_type)): Likewise.
(unordered_multimap<>::begin(size_type)): Likewise.
(unordered_multimap<>::begin(size_type) const): Likewise.
(unordered_multimap<>::cbegin(size_type) const): Likewise.
(unordered_multimap<>::end(size_type)): Likewise.
(unordered_multimap<>::end(size_type) const): Likewise.
(unordered_multimap<>::cend(size_type) const): Likewise.
(unordered_multimap<>::bucket_size(size_type)): Likewise.
* testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
New.
* testsuite/23_containers/unordered_map/debug/begin1_neg.cc: New.
* testsuite/23_containers/unordered_map/debug/begin2_neg.cc: New.
* testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: New.
* testsuite/23_containers/unordered_map/debug/end1_neg.cc: New.
* testsuite/23_containers/unordered_map/debug/end2_neg.cc: New.
* testsuite/23_containers/unordered_map/debug/cend_neg.cc: New.
* testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
New.
* testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc: New.
* testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc: New.
* testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc: New.
* testsuite/23_containers/unordered_multimap/debug/end1_neg.cc: New.
* testsuite/23_containers/unordered_multimap/debug/end2_neg.cc: New.
* testsuite/23_containers/unordered_multimap/debug/cend_neg.cc: New.
* testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
New.
* testsuite/23_containers/unordered_set/debug/begin1_neg.cc: New.
* testsuite/23_containers/unordered_set/debug/begin2_neg.cc: New.
* testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: New.
* testsuite/23_containers/unordered_set/debug/end1_neg.cc: New.
* testsuite/23_containers/unordered_set/debug/end2_neg.cc: New.
* testsuite/23_containers/unordered_set/debug/cend_neg.cc: New.
* testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
New.
* testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc: New.
* testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc: New.
* testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc: New.
* testsuite/23_containers/unordered_multiset/debug/end1_neg.cc: New.
* testsuite/23_containers/unordered_multiset/debug/end2_neg.cc: New.
* testsuite/23_containers/unordered_multiset/debug/cend_neg.cc: New.

From-SVN: r192512

34 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/include/debug/formatter.h
libstdc++-v3/include/debug/macros.h
libstdc++-v3/include/debug/unordered_map
libstdc++-v3/include/debug/unordered_set
libstdc++-v3/src/c++11/debug.cc
libstdc++-v3/testsuite/23_containers/unordered_map/debug/begin1_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_map/debug/begin2_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_map/debug/cbegin_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_map/debug/cend_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_map/debug/end1_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_map/debug/end2_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/cend_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/end1_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/end2_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/cend_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/end1_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/end2_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_set/debug/begin1_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_set/debug/begin2_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_set/debug/cbegin_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_set/debug/cend_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_set/debug/end1_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_set/debug/end2_neg.cc [new file with mode: 0644]

index 01537a7..3527fbc 100644 (file)
@@ -1,3 +1,71 @@
+2012-10-16  François Dumont  <fdumont@gcc.gnu.org>
+
+       * include/debug/formatter.h (_Debug_msg_id): Add
+       __msg_bucket_index_oob.
+       * include/debug/macros.h (__glibcxx_check_bucket_index): New.
+       * include/debug/unordered_set (unordered_set<>::begin(size_type)):
+       Add check on bucket index.
+       (unordered_set<>::begin(size_type) const): Likewise.
+       (unordered_set<>::cbegin(size_type) const): Likewise.
+       (unordered_set<>::end(size_type)): Likewise.
+       (unordered_set<>::end(size_type) const): Likewise.
+       (unordered_set<>::cend(size_type) const): Likewise.
+       (unordered_set<>::bucket_size(size_type)): Likewise.
+       (unordered_multiset<>::begin(size_type)): Likewise.
+       (unordered_multiset<>::begin(size_type) const): Likewise.
+       (unordered_multiset<>::cbegin(size_type) const): Likewise.
+       (unordered_multiset<>::end(size_type)): Likewise.
+       (unordered_multiset<>::end(size_type) const): Likewise.
+       (unordered_multiset<>::cend(size_type) const): Likewise.
+       (unordered_multiset<>::bucket_size(size_type)): Likewise.
+       * include/debug/unordered_map (unordered_map<>::begin(size_type)):
+       Likewise.
+       (unordered_map<>::begin(size_type) const): Likewise.
+       (unordered_map<>::cbegin(size_type) const): Likewise.
+       (unordered_map<>::end(size_type)): Likewise.
+       (unordered_map<>::end(size_type) const): Likewise.
+       (unordered_map<>::cend(size_type) const): Likewise.
+       (unordered_map<>::bucket_size(size_type)): Likewise.
+       (unordered_multimap<>::begin(size_type)): Likewise.
+       (unordered_multimap<>::begin(size_type) const): Likewise.
+       (unordered_multimap<>::cbegin(size_type) const): Likewise.
+       (unordered_multimap<>::end(size_type)): Likewise.
+       (unordered_multimap<>::end(size_type) const): Likewise.
+       (unordered_multimap<>::cend(size_type) const): Likewise.
+       (unordered_multimap<>::bucket_size(size_type)): Likewise.
+       * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
+       New.
+       * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: New.
+       * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: New.
+       * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: New.
+       * testsuite/23_containers/unordered_map/debug/end1_neg.cc: New.
+       * testsuite/23_containers/unordered_map/debug/end2_neg.cc: New.
+       * testsuite/23_containers/unordered_map/debug/cend_neg.cc: New.
+       * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
+       New.
+       * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc: New.
+       * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc: New.
+       * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc: New.
+       * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc: New.
+       * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc: New.
+       * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc: New.
+       * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
+       New.
+       * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: New.
+       * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: New.
+       * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: New.
+       * testsuite/23_containers/unordered_set/debug/end1_neg.cc: New.
+       * testsuite/23_containers/unordered_set/debug/end2_neg.cc: New.
+       * testsuite/23_containers/unordered_set/debug/cend_neg.cc: New.
+       * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
+       New.
+       * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc: New.
+       * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc: New.
+       * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc: New.
+       * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc: New.
+       * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc: New.
+       * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc: New.
+
 2012-10-15  Matthias Klose  <doko@ubuntu.com>
 
        * configure.host: Match arm*-*-linux-* for ARM Linux/GNU.
index 8f36285..9bed998 100644 (file)
@@ -107,11 +107,13 @@ namespace __gnu_debug
     __msg_insert_after_end,
     __msg_erase_after_bad,
     __msg_valid_range2,
-    // unordered sequence local iterators
+    // unordered container local iterators
     __msg_local_iter_compare_bad,
     __msg_non_empty_range,
     // self move assign
-    __msg_self_move_assign
+    __msg_self_move_assign,
+    // unordered container buckets
+    __msg_bucket_index_oob
   };
 
   class _Error_formatter
index 1b78719..a8e2f5f 100644 (file)
@@ -202,11 +202,19 @@ _GLIBCXX_DEBUG_VERIFY(!_Last._M_is_before_begin(),                        \
 // Verify that the subscript _N is less than the container's size.
 #define __glibcxx_check_subscript(_N)                                  \
 _GLIBCXX_DEBUG_VERIFY(_N < this->size(),                               \
-                     _M_message(__gnu_debug::__msg_subscript_oob)      \
+                     _M_message(__gnu_debug::__msg_subscript_oob)      \
                       ._M_sequence(*this, "this")                      \
                      ._M_integer(_N, #_N)                              \
                      ._M_integer(this->size(), "size"))
 
+// Verify that the bucket _N is less than the container's buckets count.
+#define __glibcxx_check_bucket_index(_N)                               \
+_GLIBCXX_DEBUG_VERIFY(_N < this->bucket_count(),                       \
+                     _M_message(__gnu_debug::__msg_bucket_index_oob)   \
+                      ._M_sequence(*this, "this")                      \
+                     ._M_integer(_N, #_N)                              \
+                     ._M_integer(this->bucket_count(), "size"))
+
 // Verify that the container is nonempty
 #define __glibcxx_check_nonempty()                                     \
 _GLIBCXX_DEBUG_VERIFY(! this->empty(),                                 \
index 96cb148..e980d8c 100644 (file)
@@ -183,27 +183,52 @@ namespace __debug
       // local versions
       local_iterator
       begin(size_type __b)
-      { return local_iterator(_Base::begin(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return local_iterator(_Base::begin(__b), __b, this);
+      }
 
       local_iterator
       end(size_type __b)
-      { return local_iterator(_Base::end(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return local_iterator(_Base::end(__b), __b, this);
+      }
 
       const_local_iterator
       begin(size_type __b) const
-      { return const_local_iterator(_Base::begin(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return const_local_iterator(_Base::begin(__b), __b, this);
+      }
 
       const_local_iterator
       end(size_type __b) const
-      { return const_local_iterator(_Base::end(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return const_local_iterator(_Base::end(__b), __b, this);
+      }
 
       const_local_iterator
       cbegin(size_type __b) const
-      { return const_local_iterator(_Base::cbegin(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return const_local_iterator(_Base::cbegin(__b), __b, this);
+      }
 
       const_local_iterator
       cend(size_type __b) const
-      { return const_local_iterator(_Base::cend(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return const_local_iterator(_Base::cend(__b), __b, this);
+      }
+
+      size_type
+      bucket_size(size_type __b) const
+      {
+       __glibcxx_check_bucket_index(__b);
+       return _Base::bucket_size(__b);
+      }
 
       template<typename... _Args>
        std::pair<iterator, bool>
@@ -598,27 +623,52 @@ namespace __debug
       // local versions
       local_iterator
       begin(size_type __b)
-      { return local_iterator(_Base::begin(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return local_iterator(_Base::begin(__b), __b, this);
+      }
 
       local_iterator
       end(size_type __b)
-      { return local_iterator(_Base::end(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return local_iterator(_Base::end(__b), __b, this);
+      }
 
       const_local_iterator
       begin(size_type __b) const
-      { return const_local_iterator(_Base::begin(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return const_local_iterator(_Base::begin(__b), __b, this);
+      }
 
       const_local_iterator
       end(size_type __b) const
-      { return const_local_iterator(_Base::end(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return const_local_iterator(_Base::end(__b), __b, this);
+      }
 
       const_local_iterator
       cbegin(size_type __b) const
-      { return const_local_iterator(_Base::cbegin(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return const_local_iterator(_Base::cbegin(__b), __b, this);
+      }
 
       const_local_iterator
       cend(size_type __b) const
-      { return const_local_iterator(_Base::cend(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return const_local_iterator(_Base::cend(__b), __b, this);
+      }
+
+      size_type
+      bucket_size(size_type __b) const
+      {
+       __glibcxx_check_bucket_index(__b);
+       return _Base::bucket_size(__b);
+      }
 
       template<typename... _Args>
        iterator
index 7996763..276821d 100644 (file)
@@ -183,27 +183,52 @@ namespace __debug
       // local versions
       local_iterator
       begin(size_type __b)
-      { return local_iterator(_Base::begin(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return local_iterator(_Base::begin(__b), __b, this);
+      }
 
       local_iterator
       end(size_type __b)
-      { return local_iterator(_Base::end(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return local_iterator(_Base::end(__b), __b, this);
+      }
 
       const_local_iterator
       begin(size_type __b) const
-      { return const_local_iterator(_Base::begin(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return const_local_iterator(_Base::begin(__b), __b, this);
+      }
 
       const_local_iterator
       end(size_type __b) const
-      { return const_local_iterator(_Base::end(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return const_local_iterator(_Base::end(__b), __b, this);
+      }
 
       const_local_iterator
       cbegin(size_type __b) const
-      { return const_local_iterator(_Base::cbegin(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return const_local_iterator(_Base::cbegin(__b), __b, this);
+      }
 
       const_local_iterator
       cend(size_type __b) const
-      { return const_local_iterator(_Base::cend(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return const_local_iterator(_Base::cend(__b), __b, this);
+      }
+
+      size_type
+      bucket_size(size_type __b) const
+      {
+       __glibcxx_check_bucket_index(__b);
+       return _Base::bucket_size(__b);
+      }
 
       template<typename... _Args>
        std::pair<iterator, bool>
@@ -593,27 +618,52 @@ namespace __debug
       // local versions
       local_iterator
       begin(size_type __b)
-      { return local_iterator(_Base::begin(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return local_iterator(_Base::begin(__b), __b, this);
+      }
 
       local_iterator
       end(size_type __b)
-      { return local_iterator(_Base::end(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return local_iterator(_Base::end(__b), __b, this);
+      }
 
       const_local_iterator
       begin(size_type __b) const
-      { return const_local_iterator(_Base::begin(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return const_local_iterator(_Base::begin(__b), __b, this);
+      }
 
       const_local_iterator
       end(size_type __b) const
-      { return const_local_iterator(_Base::end(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return const_local_iterator(_Base::end(__b), __b, this);
+      }
 
       const_local_iterator
       cbegin(size_type __b) const
-      { return const_local_iterator(_Base::cbegin(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return const_local_iterator(_Base::cbegin(__b), __b, this);
+      }
 
       const_local_iterator
       cend(size_type __b) const
-      { return const_local_iterator(_Base::cend(__b), __b, this); }
+      {
+       __glibcxx_check_bucket_index(__b);
+       return const_local_iterator(_Base::cend(__b), __b, this);
+      }
+
+      size_type
+      bucket_size(size_type __b) const
+      {
+       __glibcxx_check_bucket_index(__b);
+       return _Base::bucket_size(__b);
+      }
 
       template<typename... _Args>
        iterator
index f0ab4bc..6cd93d1 100644 (file)
@@ -178,7 +178,9 @@ namespace __gnu_debug
     "attempt to compare local iterators from different unordered container"
     " buckets",
     "function requires a non-empty iterator range [%1.name;, %2.name;)",
-    "attempt to self move assign"
+    "attempt to self move assign",
+    "attempt to access container with out-of-bounds bucket index %2;,"
+    " container only holds %3; buckets"
   };
 
   void
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/begin1_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/begin1_neg.cc
new file mode 100644 (file)
index 0000000..63bdb53
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_map>
+
+void test01()
+{
+  std::unordered_map<int, int> um;
+  um.begin(um.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/begin2_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/begin2_neg.cc
new file mode 100644 (file)
index 0000000..5f8c177
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_map>
+
+void test01()
+{
+  std::unordered_map<int, int> um;
+  const std::unordered_map<int, int>& cum = um;
+  cum.begin(um.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc
new file mode 100644 (file)
index 0000000..17e2875
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_map>
+
+void test01()
+{
+  std::unordered_map<int, int> um;
+  um.bucket_size(um.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/cbegin_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/cbegin_neg.cc
new file mode 100644 (file)
index 0000000..8147256
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_map>
+
+void test01()
+{
+  std::unordered_map<int, int> um;
+  um.cbegin(um.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/cend_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/cend_neg.cc
new file mode 100644 (file)
index 0000000..0eb4800
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_map>
+
+void test01()
+{
+  std::unordered_map<int, int> um;
+  um.cend(um.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/end1_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/end1_neg.cc
new file mode 100644 (file)
index 0000000..028efed
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_map>
+
+void test01()
+{
+  std::unordered_map<int, int> um;
+  um.end(um.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/end2_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/end2_neg.cc
new file mode 100644 (file)
index 0000000..fe25ad6
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_map>
+
+void test01()
+{
+  std::unordered_map<int, int> um;
+  const std::unordered_map<int, int>& cum = um;
+  cum.end(um.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc
new file mode 100644 (file)
index 0000000..bf70732
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_map>
+
+void test01()
+{
+  std::unordered_multimap<int, int> um;
+  um.begin(um.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc
new file mode 100644 (file)
index 0000000..5f8c177
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_map>
+
+void test01()
+{
+  std::unordered_map<int, int> um;
+  const std::unordered_map<int, int>& cum = um;
+  cum.begin(um.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc
new file mode 100644 (file)
index 0000000..17e2875
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_map>
+
+void test01()
+{
+  std::unordered_map<int, int> um;
+  um.bucket_size(um.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc
new file mode 100644 (file)
index 0000000..8147256
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_map>
+
+void test01()
+{
+  std::unordered_map<int, int> um;
+  um.cbegin(um.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/cend_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/cend_neg.cc
new file mode 100644 (file)
index 0000000..0eb4800
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_map>
+
+void test01()
+{
+  std::unordered_map<int, int> um;
+  um.cend(um.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/end1_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/end1_neg.cc
new file mode 100644 (file)
index 0000000..028efed
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_map>
+
+void test01()
+{
+  std::unordered_map<int, int> um;
+  um.end(um.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/end2_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/end2_neg.cc
new file mode 100644 (file)
index 0000000..fe25ad6
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_map>
+
+void test01()
+{
+  std::unordered_map<int, int> um;
+  const std::unordered_map<int, int>& cum = um;
+  cum.end(um.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc
new file mode 100644 (file)
index 0000000..1f2ee73
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_set>
+
+void test01()
+{
+  std::unordered_multiset<int> us;
+  us.begin(us.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc
new file mode 100644 (file)
index 0000000..e768a54
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_set>
+
+void test01()
+{
+  std::unordered_multiset<int> us;
+  const std::unordered_multiset<int>& cus = us;
+  cus.begin(us.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc
new file mode 100644 (file)
index 0000000..14928c6
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_set>
+
+void test01()
+{
+  std::unordered_multiset<int> us;
+  us.bucket_size(us.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc
new file mode 100644 (file)
index 0000000..0e5a26c
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_set>
+
+void test01()
+{
+  std::unordered_multiset<int> us;
+  us.cbegin(us.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/cend_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/cend_neg.cc
new file mode 100644 (file)
index 0000000..55d2bb2
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_set>
+
+void test01()
+{
+  std::unordered_multiset<int> us;
+  us.cend(us.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/end1_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/end1_neg.cc
new file mode 100644 (file)
index 0000000..4fc054a
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_set>
+
+void test01()
+{
+  std::unordered_multiset<int> us;
+  us.end(us.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/end2_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/end2_neg.cc
new file mode 100644 (file)
index 0000000..e057828
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_set>
+
+void test01()
+{
+  std::unordered_multiset<int> us;
+  const std::unordered_multiset<int>& cus = us;
+  cus.end(us.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/debug/begin1_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/debug/begin1_neg.cc
new file mode 100644 (file)
index 0000000..2d3b274
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_set>
+
+void test01()
+{
+  std::unordered_set<int> us;
+  us.begin(us.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/debug/begin2_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/debug/begin2_neg.cc
new file mode 100644 (file)
index 0000000..7836ec2
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_set>
+
+void test01()
+{
+  std::unordered_set<int> us;
+  const std::unordered_set<int>& cus = us;
+  cus.begin(us.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc
new file mode 100644 (file)
index 0000000..5a6f5bb
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_set>
+
+void test01()
+{
+  std::unordered_set<int> us;
+  us.bucket_size(us.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/debug/cbegin_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/debug/cbegin_neg.cc
new file mode 100644 (file)
index 0000000..5e444ad
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_set>
+
+void test01()
+{
+  std::unordered_set<int> us;
+  us.cbegin(us.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/debug/cend_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/debug/cend_neg.cc
new file mode 100644 (file)
index 0000000..9fb847b
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_set>
+
+void test01()
+{
+  std::unordered_set<int> us;
+  us.cend(us.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/debug/end1_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/debug/end1_neg.cc
new file mode 100644 (file)
index 0000000..704e610
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_set>
+
+void test01()
+{
+  std::unordered_set<int> us;
+  us.end(us.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/debug/end2_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/debug/end2_neg.cc
new file mode 100644 (file)
index 0000000..ff645b5
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-require-debug-mode "" }
+// { dg-options "-std=c++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <unordered_set>
+
+void test01()
+{
+  std::unordered_set<int> us;
+  const std::unordered_set<int>& cus = us;
+  cus.end(us.bucket_count());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}