diff --git a/include/llvm/ADT/BitVector.h b/include/llvm/ADT/BitVector.h index 79c3f585677..269621313fa 100644 --- a/include/llvm/ADT/BitVector.h +++ b/include/llvm/ADT/BitVector.h @@ -290,12 +290,10 @@ private: // Clear the unused top bits in the high word. void clear_unused_bits() { - if (Size) { - unsigned ExtraBits = Size % BITS_PER_WORD; + unsigned ExtraBits = Size % BITS_PER_WORD; + if (ExtraBits) { unsigned index = Size / BITS_PER_WORD; - if (Size % BITS_PER_WORD == 0) - index--; - Bits[index] &= ~(~0 << ExtraBits); + Bits[index] &= ~(~0L << ExtraBits); } }