Cleanup: remove CleanedSate member and GetState() wrapper from StmtNodeBuilder, not needed as of r137273.

llvm-svn: 137284
This commit is contained in:
Anna Zaks 2011-08-11 00:11:21 +00:00
parent 784077eb57
commit 173864b36c
6 changed files with 9 additions and 24 deletions

View 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

View 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);

View 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)

View 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);
}

View 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() {

View 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