Uploaded image for project: 'C++ Standard Library'
  1. C++ Standard Library
  2. STDCXX-174

[MSVC/Win64] std::bitset::count() returns wrong value

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 4.1.3
    • 4.2.0
    • 23. Containers
    • None
    • MSVC/Win64

    Description

      When compiled with MSVC on Win64 the program below aborts at runtime.

      $ cat bitset.cpp && nmake bitset.exe

      #include <bitset>
      #include <cassert>

      int main ()
      {
      std::bitset<1> b;
      b = ~b;
      assert (1 == b.count ());
      }

      Microsoft (R) Program Maintenance Utility Version 8.00.50727.42
      Copyright (C) Microsoft Corporation. All rights reserved.

      cl -D_RWCONFIG=12d -Ic:\build\sebor\stdlib-4.1.4\examples\stdlib\manual/../include -I.\..\..\..\../include -Ic:\build\sebor\stdlib-4.1.4/include -Ic:/build/sebor/stdlib-4.1.4/include/ansi -I.\..\..\..\.. -Ic:\build\sebor\stdlib-4.1.4 -Ic:\build\sebor\stdlib-4.1.4\examples\stdlib\manual -nologo -EHsc -MD -W3 -O2 -GR -c c:\build\sebor\stdlib-4.1.4\examples\stdlib\manual\bitset.cpp
      bitset.cpp
      link -nologo /NODEFAULTLIB:msvcprt /LIBPATH:.\..\..\..\..\lib /OUT:bitset.exe bitset.obj std12d.lib user32.lib

      C:\build\sebor\stdlib-4.1.4-build\examples\stdlib\manual\12d>bitset.exe
      Assertion failed: 1 == b.count (), file c:\build\sebor\stdlib-4.1.4\examples\stdlib\manual\bitset.cpp, line 8

      This application has requested the Runtime to terminate it in an unusual way.
      Please contact the application's support team for more information.

      Attachments

        Activity

          People

            sebor Martin Sebor
            sebor Martin Sebor
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: