From: Ted Kremenek Date: Tue, 11 Nov 2008 19:39:47 +0000 (+0000) Subject: Add fine-grain methods for control which bits are set/reset in ExprDeclBitVector. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7fdee87c203f8e9b6feed63e85256a8f8bc2bbc0;p=clang Add fine-grain methods for control which bits are set/reset in ExprDeclBitVector. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59073 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Analysis/Support/ExprDeclBitVector.h b/include/clang/Analysis/Support/ExprDeclBitVector.h index 362ce161ab..070e357546 100644 --- a/include/clang/Analysis/Support/ExprDeclBitVector.h +++ b/include/clang/Analysis/Support/ExprDeclBitVector.h @@ -86,10 +86,19 @@ struct DeclBitVector_Types { llvm::BitVector DeclBV; public: - void resetValues(AnalysisDataTy& AD) { + void resetDeclValues(AnalysisDataTy& AD) { DeclBV.resize(AD.getNumDecls()); DeclBV.reset(); } + + void setDeclValues(AnalysisDataTy& AD) { + DeclBV.resize(AD.getNumDecls()); + DeclBV.set(); + } + + void resetValues(AnalysisDataTy& AD) { + resetDeclValues(AD); + } bool operator==(const ValTy& RHS) const { assert (sizesEqual(RHS)); @@ -200,12 +209,22 @@ struct ExprDeclBitVector_Types { public: - void resetValues(AnalysisDataTy& AD) { - ParentRef(*this).resetValues(AD); + + void resetExprValues(AnalysisDataTy& AD) { ExprBV.resize(AD.getNumExprs()); ExprBV.reset(); } + void setExprValues(AnalysisDataTy& AD) { + ExprBV.resize(AD.getNumExprs()); + ExprBV.set(); + } + + void resetValues(AnalysisDataTy& AD) { + resetDeclValues(AD); + resetExprValues(AD); + } + bool operator==(const ValTy& RHS) const { return ParentRef(*this) == ParentRef(RHS) && ExprBV == RHS.ExprBV;