aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/ADT/BitVector.h5
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);
}
}