diff options
-rw-r--r-- | include/llvm/ADT/BitVector.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/include/llvm/ADT/BitVector.h b/include/llvm/ADT/BitVector.h index 39819ee5c8..79c3f58567 100644 --- a/include/llvm/ADT/BitVector.h +++ b/include/llvm/ADT/BitVector.h @@ -292,7 +292,10 @@ private: void clear_unused_bits() { if (Size) { unsigned ExtraBits = Size % BITS_PER_WORD; - Bits[Size / BITS_PER_WORD] &= ~(~0 << ExtraBits); + unsigned index = Size / BITS_PER_WORD; + if (Size % BITS_PER_WORD == 0) + index--; + Bits[index] &= ~(~0 << ExtraBits); } } |