re PR libstdc++/13838 (std::bitset<>::operator |= error with -D_GLIBCXX_DEBUG)
authorPaolo Carlini <pcarlini@suse.de>
Sat, 24 Jan 2004 01:25:37 +0000 (01:25 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Sat, 24 Jan 2004 01:25:37 +0000 (01:25 +0000)
2004-01-23  Paolo Carlini  <pcarlini@suse.de>

PR libstdc++/13838
* include/debug/bitset (operator|=): Fix typo.
* testsuite/23_containers/bitset/operations/13838.cc: New.

From-SVN: r76479

libstdc++-v3/ChangeLog
libstdc++-v3/include/debug/bitset
libstdc++-v3/testsuite/23_containers/bitset/operations/13838.cc [new file with mode: 0644]

index 19a35352341b1d635f545cc3f4508b1bd63232cf..0118502482b1d29b42b7cf6826e585494cadeb4c 100644 (file)
@@ -1,3 +1,9 @@
+2004-01-23  Paolo Carlini  <pcarlini@suse.de>
+
+       PR libstdc++/13838
+       * include/debug/bitset (operator|=): Fix typo.
+       * testsuite/23_containers/bitset/operations/13838.cc: New.
+
 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
 
        * include/bits/basic_string.tcc (insert(size_type,
index 89244226dd7adfae9fd8ffc148b7459a5ba8a422..1d8875aaa8ac8caea905cf988ed30b9433ab4760 100644 (file)
@@ -141,7 +141,7 @@ namespace __gnu_debug_def
       bitset<_Nb>&
       operator|=(const bitset<_Nb>& __rhs)
       {
-       _M_base() != __rhs;
+       _M_base() |= __rhs;
        return *this;
       }
 
diff --git a/libstdc++-v3/testsuite/23_containers/bitset/operations/13838.cc b/libstdc++-v3/testsuite/23_containers/bitset/operations/13838.cc
new file mode 100644 (file)
index 0000000..e9b1ac1
--- /dev/null
@@ -0,0 +1,47 @@
+// Copyright (C) 2004 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.
+
+#include <debug/bitset>
+#include <testsuite_hooks.h>
+
+// libstdc++/13838
+void test01()
+{
+  using __gnu_debug::bitset;
+  bool test __attribute__((unused)) = true;
+
+  bitset<4>  b0, b1;
+  b0.set(1);
+  b0.set(3);
+  b1.set(2);
+  b1.set(3);
+  
+  b0 |= b1;
+
+  bitset<4>  br;
+  br.set(1);
+  br.set(2);
+  br.set(3);
+
+  VERIFY( b0 == br );
+}
+
+int main()
+{
+  test01();
+}