diff options
Diffstat (limited to 'include/llvm/ADT/SparseBitVector.h')
-rw-r--r-- | include/llvm/ADT/SparseBitVector.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/include/llvm/ADT/SparseBitVector.h b/include/llvm/ADT/SparseBitVector.h index 1ed2860..4c28682 100644 --- a/include/llvm/ADT/SparseBitVector.h +++ b/include/llvm/ADT/SparseBitVector.h @@ -89,6 +89,14 @@ public: ElementIndex = RHS.ElementIndex; std::copy(&RHS.Bits[0], &RHS.Bits[BITWORDS_PER_ELEMENT], Bits); } + + // Assignment + SparseBitVectorElement& operator=(const SparseBitVectorElement& RHS) { + ElementIndex = RHS.ElementIndex; + std::copy(&RHS.Bits[0], &RHS.Bits[BITWORDS_PER_ELEMENT], Bits); + + return *this; + } // Comparison. bool operator==(const SparseBitVectorElement &RHS) const { @@ -483,6 +491,21 @@ public: CurrElementIter = Elements.begin (); } + + // Assignment + SparseBitVector& operator=(const SparseBitVector& RHS) { + Elements.clear(); + + ElementListConstIter ElementIter = RHS.Elements.begin(); + while (ElementIter != RHS.Elements.end()) { + Elements.push_back(SparseBitVectorElement<ElementSize>(*ElementIter)); + ++ElementIter; + } + + CurrElementIter = Elements.begin (); + + return *this; + } // Test, Reset, and Set a bit in the bitmap. bool test(unsigned Idx) { |