Fix iterator so it doesn't sometimes report bits that aren't in the bitmap
authorDaniel Berlin <dberlin@dberlin.org>
Mon, 17 Sep 2007 18:04:21 +0000 (18:04 +0000)
committerDaniel Berlin <dberlin@dberlin.org>
Mon, 17 Sep 2007 18:04:21 +0000 (18:04 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42039 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/SparseBitVector.h

index 6ffc6edcfc78927a4d44a2b853d91269308d3837..3455f51050b12490b9009aa33e299a1d7b460852 100644 (file)
@@ -405,6 +405,8 @@ class SparseBitVector {
           WordNumber = (NextSetBitNumber % ElementSize) / BITWORD_SIZE;
           Bits = Iter->word(WordNumber);
           Bits >>= NextSetBitNumber % BITWORD_SIZE;
+         BitNumber = Iter->index() * ElementSize;
+         BitNumber += NextSetBitNumber;
         }
       }
     }