diff --git a/include/llvm/ADT/BitVector.h b/include/llvm/ADT/BitVector.h index a6ae1ac80d5..03789aa4ffb 100644 --- a/include/llvm/ADT/BitVector.h +++ b/include/llvm/ADT/BitVector.h @@ -101,7 +101,12 @@ public: unsigned count() const { unsigned NumBits = 0; for (unsigned i = 0; i < NumBitWords(size()); ++i) - NumBits = CountPopulation_32(Bits[i]); + if (sizeof(BitWord) == 4) + NumBits += CountPopulation_32(Bits[i]); + else if (sizeof(BitWord) == 8) + NumBits += CountPopulation_64(Bits[i]); + else + assert(0 && "Unsupported!") return NumBits; }