https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87784

            Bug ID: 87784
           Summary: A bug in tr2::dynamic_bitset::find_first
           Product: gcc
           Version: 8.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: yusemru at gmail dot com
  Target Milestone: ---

Created attachment 44917
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44917&action=edit
source code

Consider the following code:

#include <iostream>
#include <tr2/dynamic_bitset>

using namespace std;
using namespace tr2;

int main() {
        dynamic_bitset<uint64_t> b;
        b.push_back(0);
        b.push_back(1);
        dynamic_bitset<uint64_t> a;
        a.push_back(0);
        a.push_back(0);
        cout << b.find_first() << ' ' << a.find_first() << endl;
    return 0;
}

On my machine it prints 2 2, which is clearly wrong.
I'm using GCC 8.1.1 on Arch Linux x86-64

Reply via email to