From 25e751a6c9ceb13f313c36facff93be30a057d97 Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Tue, 23 Jun 2009 21:37:46 +0000 Subject: [PATCH] Remove GRStateManager::getRegion/getSelfRegion(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74006 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../clang/Analysis/PathSensitive/GRState.h | 32 ++++++------------- lib/Analysis/BasicStore.cpp | 2 +- lib/Analysis/CFRefCount.cpp | 2 +- lib/Analysis/GRExprEngine.cpp | 4 +-- 4 files changed, 13 insertions(+), 27 deletions(-) diff --git a/include/clang/Analysis/PathSensitive/GRState.h b/include/clang/Analysis/PathSensitive/GRState.h index 7c9c80bea2..285bd02671 100644 --- a/include/clang/Analysis/PathSensitive/GRState.h +++ b/include/clang/Analysis/PathSensitive/GRState.h @@ -198,6 +198,14 @@ public: const GRState *assumeInBound(SVal idx, SVal upperBound, bool assumption) const; + //==---------------------------------------------------------------------==// + // Utility methods for getting regions. + //==---------------------------------------------------------------------==// + + const VarRegion* getRegion(const VarDecl* D) const; + + const MemRegion* getSelfRegion() const; + //==---------------------------------------------------------------------==// // Binding and retrieving values to/from the environment and symbolic store. //==---------------------------------------------------------------------==// @@ -431,18 +439,7 @@ private: /// Liveness - live-variables information of the ValueDecl* and block-level /// Expr* in the CFG. Used to get initial store and prune out dead state. LiveVariables& Liveness; - -private: - - Environment RemoveBlkExpr(const Environment& Env, Expr* E) { - return EnvMgr.RemoveBlkExpr(Env, E); - } - // FIXME: Remove when we do lazy initializaton of variable bindings. -// const GRState* BindVar(const GRState* St, VarDecl* D, SVal V) { -// return SetSVal(St, getLoc(D), V); -// } - public: GRStateManager(ASTContext& Ctx, @@ -464,7 +461,7 @@ public: ~GRStateManager(); - const GRState* getInitialState(); + const GRState *getInitialState(); ASTContext &getContext() { return ValueMgr.getContext(); } const ASTContext &getContext() const { return ValueMgr.getContext(); } @@ -510,17 +507,6 @@ public: NewSt.Env = EnvMgr.RemoveSubExprBindings(NewSt.Env); return getPersistentState(NewSt); } - - - // Utility methods for getting regions. - - VarRegion* getRegion(const VarDecl* D) { - return getRegionManager().getVarRegion(D); - } - - const MemRegion* getSelfRegion(const GRState* state) { - return StoreMgr->getSelfRegion(state->getStore()); - } private: diff --git a/lib/Analysis/BasicStore.cpp b/lib/Analysis/BasicStore.cpp index 6b346cd525..e4ea260548 100644 --- a/lib/Analysis/BasicStore.cpp +++ b/lib/Analysis/BasicStore.cpp @@ -535,7 +535,7 @@ Store BasicStoreManager::getInitialStore() { // Initialize globals and parameters to symbolic values. // Initialize local variables to undefined. - const MemRegion *R = StateMgr.getRegion(VD); + const MemRegion *R = ValMgr.getRegionManager().getVarRegion(VD); SVal X = (VD->hasGlobalStorage() || isa(VD) || isa(VD)) ? ValMgr.getRegionValueSymbolVal(R) diff --git a/lib/Analysis/CFRefCount.cpp b/lib/Analysis/CFRefCount.cpp index 46333a74f2..d4d10cf5d1 100644 --- a/lib/Analysis/CFRefCount.cpp +++ b/lib/Analysis/CFRefCount.cpp @@ -3091,7 +3091,7 @@ void CFRefCount::EvalObjCMessageExpr(ExplodedNodeSet& Dst, if (Expr* Receiver = ME->getReceiver()) { SVal X = St->getSValAsScalarOrLoc(Receiver); if (loc::MemRegionVal* L = dyn_cast(&X)) - if (L->getRegion() == Eng.getStateManager().getSelfRegion(St)) { + if (L->getRegion() == St->getSelfRegion()) { // Update the summary to make the default argument effect // 'StopTracking'. Summ = Summaries.copySummary(Summ); diff --git a/lib/Analysis/GRExprEngine.cpp b/lib/Analysis/GRExprEngine.cpp index 42c6ce3dfb..5ea9b29dda 100644 --- a/lib/Analysis/GRExprEngine.cpp +++ b/lib/Analysis/GRExprEngine.cpp @@ -176,7 +176,7 @@ const GRState* GRExprEngine::getInitialState() { const ParmVarDecl *PD = FD->getParamDecl(0); QualType T = PD->getType(); if (T->isIntegerType()) - if (const MemRegion *R = StateMgr.getRegion(PD)) { + if (const MemRegion *R = state->getRegion(PD)) { SVal V = state->getSVal(loc::MemRegionVal(R)); SVal Constraint = EvalBinOp(state, BinaryOperator::GT, V, ValMgr.makeZeroVal(T), @@ -2253,7 +2253,7 @@ void GRExprEngine::VisitDeclStmt(DeclStmt* DS, NodeTy* Pred, NodeSet& Dst) { // update the state based on the new binding. If the GRTransferFunc // object doesn't do anything, just auto-propagate the current state. GRStmtNodeBuilderRef BuilderRef(Dst, *Builder, *this, *I, state, DS,true); - getTF().EvalBind(BuilderRef, loc::MemRegionVal(StateMgr.getRegion(VD)), + getTF().EvalBind(BuilderRef, loc::MemRegionVal(state->getRegion(VD)), InitVal); } else { -- 2.40.0