]> granicus.if.org Git - clang/commitdiff
Cleanup: remove CleanedSate member and GetState() wrapper from StmtNodeBuilder, not...
authorAnna Zaks <ganna@apple.com>
Thu, 11 Aug 2011 00:11:21 +0000 (00:11 +0000)
committerAnna Zaks <ganna@apple.com>
Thu, 11 Aug 2011 00:11:21 +0000 (00:11 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137284 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
lib/StaticAnalyzer/Core/CFRefCount.cpp
lib/StaticAnalyzer/Core/CheckerContext.cpp
lib/StaticAnalyzer/Core/CoreEngine.cpp
lib/StaticAnalyzer/Core/ExprEngine.cpp

index 27c52c3b12a66608bcbdf8bd0d996ebc4656792c..62887cd2e2376209565f0d9dc67338834c542205 100644 (file)
@@ -71,7 +71,7 @@ public:
   ExplodedNodeSet &getNodeSet() { return Dst; }
   StmtNodeBuilder &getNodeBuilder() { return B; }
   ExplodedNode *&getPredecessor() { return Pred; }
-  const GRState *getState() { return ST ? ST : B.GetState(Pred); }
+  const GRState *getState() { return ST ? ST : Pred->getState(); }
   const Stmt *getStmt() const { return statement; }
 
   ASTContext &getASTContext() {
@@ -151,7 +151,7 @@ public:
     assert(state);
     // If the 'state' is not new, we need to check if the cached state 'ST'
     // is new.
-    if (state != getState() || (ST && ST != B.GetState(Pred)))
+    if (state != getState() || (ST && ST != Pred->getState()))
       // state is new or equals to ST.
       generateNode(state, true, tag);
     else
index 91ec4034558e28df32f56f5df5aadbbc4bacc0cd..19daeda6b57092c8624ec84369dd445b63b555af 100644 (file)
@@ -172,9 +172,6 @@ public:
   ProgramPoint::Kind PointKind;
   const void *Tag;
 
-  const GRState* CleanedState;
-
-
   typedef llvm::SmallPtrSet<ExplodedNode*,5> DeferredTy;
   DeferredTy Deferred;
 
@@ -191,10 +188,6 @@ public:
   // FIXME: This should not be exposed.
   WorkList *getWorkList() { return Eng.WList; }
 
-  void SetCleanedState(const GRState* St) {
-    CleanedState = St;
-  }
-
   BlockCounter getBlockCounter() const { return Eng.WList->getBlockCounter();}
 
   unsigned getCurrentBlockCount() const {
@@ -252,13 +245,6 @@ public:
 
   unsigned getIndex() const { return Idx; }
 
-  const GRState* GetState(ExplodedNode* Pred) const {
-    if (Pred == getPredecessor())
-      return CleanedState;
-    else
-      return Pred->getState();
-  }
-
   ExplodedNode* MakeNode(ExplodedNodeSet& Dst, const Stmt* S, 
                          ExplodedNode* Pred, const GRState* St) {
     return MakeNode(Dst, S, Pred, St, PointKind);
index 4c3381f4074a23e16d43ae58e7a4ae7fe8bd2963..ad809e7649a6d10d645d181efa4e1594990e7888 100644 (file)
@@ -2832,9 +2832,9 @@ void CFRefCount::evalCall(ExplodedNodeSet& Dst,
 
   assert(Summ);
   evalSummary(Dst, Eng, Builder, CE,
-              CallOrObjCMessage(CE, Builder.GetState(Pred)),
+              CallOrObjCMessage(CE, Pred->getState()),
               InstanceReceiver(), *Summ,L.getAsRegion(),
-              Pred, Builder.GetState(Pred));
+              Pred, Pred->getState());
 }
 
 void CFRefCount::evalObjCMessage(ExplodedNodeSet& Dst,
@@ -2850,7 +2850,7 @@ void CFRefCount::evalObjCMessage(ExplodedNodeSet& Dst,
 
   assert(Summ && "RetainSummary is null");
   evalSummary(Dst, Eng, Builder, msg.getOriginExpr(),
-              CallOrObjCMessage(msg, Builder.GetState(Pred)),
+              CallOrObjCMessage(msg, Pred->getState()),
               InstanceReceiver(msg, Pred->getLocationContext()), *Summ, NULL,
               Pred, state);
 }
@@ -2919,7 +2919,7 @@ void CFRefCount::evalReturn(ExplodedNodeSet& Dst,
   if (!RetE)
     return;
 
-  const GRState *state = Builder.GetState(Pred);
+  const GRState *state = Pred->getState();
   SymbolRef Sym = state->getSValAsScalarOrLoc(RetE).getAsLocSymbol();
 
   if (!Sym)
index f6fb8f256c0138b679dfb794c0b43bd19fdfead1..3920a4990a680ddd4666f973b822193c19a0e183 100644 (file)
@@ -23,7 +23,7 @@ CheckerContext::~CheckerContext() {
   // if we are building sinks or we generated a node and decided to not
   // add it as a transition.
   if (Dst.size() == size && !B.BuildSinks && !B.hasGeneratedNode) {
-    if (ST && ST != B.GetState(Pred)) {
+    if (ST && ST != Pred->getState()) {
       static int autoTransitionTag = 0;
       addTransition(ST, &autoTransitionTag);
     }
index 1103ac65deaa4d1ef1fee3acad94ab1b38732a0b..4b966285aca2edcb00e73e1381006c4fa609f876 100644 (file)
@@ -487,7 +487,6 @@ StmtNodeBuilder::StmtNodeBuilder(const CFGBlock* b, unsigned idx,
     PurgingDeadSymbols(false), BuildSinks(false), hasGeneratedNode(false),
     PointKind(ProgramPoint::PostStmtKind), Tag(0) {
   Deferred.insert(N);
-  CleanedState = Pred->getState();
 }
 
 StmtNodeBuilder::~StmtNodeBuilder() {
index 72f2403ac448908d118a97ac1047361be1ab81cb..e2c0fc1b7e7b1fc8ce0a58de74cc939945c6f638 100644 (file)
@@ -1592,7 +1592,7 @@ void ExprEngine::evalLocation(ExplodedNodeSet &Dst, const Stmt *S,
   }
 
   ExplodedNodeSet Src;
-  if (Builder->GetState(Pred) == state) {
+  if (Pred->getState() == state) {
     Src.Add(Pred);
   } else {
     // Associate this new state with an ExplodedNode.
@@ -2017,7 +2017,7 @@ void ExprEngine::VisitObjCMessage(const ObjCMessage &msg,
         Builder->BuildSinks = true;
 
       // Dispatch to plug-in transfer function.
-      evalObjCMessage(dstEval, msg, Pred, Builder->GetState(Pred));
+      evalObjCMessage(dstEval, msg, Pred, Pred->getState());
     }
 
     // Handle the case where no nodes where generated.  Auto-generate that