diff options
Diffstat (limited to 'include/clang/Analysis/Support/ExprDeclBitVector.h')
-rw-r--r-- | include/clang/Analysis/Support/ExprDeclBitVector.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/include/clang/Analysis/Support/ExprDeclBitVector.h b/include/clang/Analysis/Support/ExprDeclBitVector.h index 558331e32e..e54bacae7b 100644 --- a/include/clang/Analysis/Support/ExprDeclBitVector.h +++ b/include/clang/Analysis/Support/ExprDeclBitVector.h @@ -119,7 +119,7 @@ struct DeclBitVector_Types { const llvm::BitVector::reference getDeclBit(unsigned i) const { return const_cast<llvm::BitVector&>(DeclBV)[i]; } - + ValTy& operator|=(const ValTy& RHS) { assert (sizesEqual(RHS)); DeclBV |= RHS.DeclBV; @@ -132,6 +132,14 @@ struct DeclBitVector_Types { return *this; } + ValTy& OrDeclBits(const ValTy& RHS) { + return operator|=(RHS); + } + + ValTy& AndDeclBits(const ValTy& RHS) { + return operator&=(RHS); + } + bool sizesEqual(const ValTy& RHS) const { return DeclBV.size() == RHS.DeclBV.size(); } @@ -225,6 +233,16 @@ struct ExprDeclBitVector_Types { return const_cast<llvm::BitVector&>(ExprBV)[i]; } + ValTy& OrExprBits(const ValTy& RHS) { + ExprBV |= RHS.ExprBV; + return *this; + } + + ValTy& AndExprBits(const ValTy& RHS) { + ExprBV &= RHS.ExprBV; + return *this; + } + ValTy& operator|=(const ValTy& RHS) { assert (sizesEqual(RHS)); ParentRef(*this) |= ParentRef(RHS); |