2001-06-04 Brendan Kehoe <brendan@zen.org>
authorpme <pme@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 4 Jun 2001 17:42:22 +0000 (17:42 +0000)
committerpme <pme@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 4 Jun 2001 17:42:22 +0000 (17:42 +0000)
            Phil Edwards  <pme@sources.redhat.com>

* include/bits/std_bitset.h (bitset::test):  Fix __pos >= _Nb
comparison; all positions must be < _Nb.
* testsuite/23_containers/bitset_members.cc:  New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42859 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/std_bitset.h
libstdc++-v3/testsuite/23_containers/bitset_members.cc [new file with mode: 0644]

index 14ec36e..361884c 100644 (file)
@@ -1,4 +1,11 @@
 2001-06-04  Brendan Kehoe  <brendan@zen.org>
+            Phil Edwards  <pme@sources.redhat.com>
+
+       * include/bits/std_bitset.h (bitset::test):  Fix __pos >= _Nb
+       comparison; all positions must be < _Nb.
+       * testsuite/23_containers/bitset_members.cc:  New file.
+
+2001-06-04  Brendan Kehoe  <brendan@zen.org>
 
        PR libstdc++/3016
        * include/bits/stl_queue.h (classes queue, priority_queue):  Fix
index 4b44272..1c868bc 100644 (file)
@@ -629,7 +629,7 @@ public:
   }
 
   bool test(size_t __pos) const {
-    if (__pos > _Nb)
+    if (__pos >= _Nb)
       __STL_THROW(out_of_range("bitset"));
 
     return _Unchecked_test(__pos);
diff --git a/libstdc++-v3/testsuite/23_containers/bitset_members.cc b/libstdc++-v3/testsuite/23_containers/bitset_members.cc
new file mode 100644 (file)
index 0000000..d8de071
--- /dev/null
@@ -0,0 +1,59 @@
+// 2001-06-03 pme
+
+// Copyright (C) 2001 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 2, 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 COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 23.3.5.2 bitset members
+
+#include <bitset>
+#include <debug_assert.h>
+
+bool test01(void)
+{
+  bool test = true;
+  const size_t n1 = 5;
+
+// the other 22 member functions should be in here too...
+
+
+  // test()
+  try {
+    std::bitset<n1> five_bits;
+    bool unused = five_bits.test(n1);   // should throw
+    VERIFY( false );
+  }
+  catch(std::out_of_range& fail) {
+    VERIFY( true );
+  }
+  catch(...) {
+    VERIFY( false );
+  }
+  
+
+#ifdef DEBUG_ASSERT
+  assert(test);
+#endif
+  return test;
+}
+
+int main()
+{
+  test01();
+
+  return 0;
+}