aboutsummaryrefslogtreecommitdiff
path: root/lib/StaticAnalyzer/Core/CoreEngine.cpp
diff options
context:
space:
mode:
authorAnna Zaks <ganna@apple.com>2011-10-18 23:06:16 +0000
committerAnna Zaks <ganna@apple.com>2011-10-18 23:06:16 +0000
commitad62deeb70e97da6bd514dd390ea1ce6af6ad81d (patch)
treede9011c7bcae1cb16430e5c427242d4220dda1ae /lib/StaticAnalyzer/Core/CoreEngine.cpp
parent8c90aadce33152b03e3d1d5c7e9c468c7b939c96 (diff)
[analyzer] Pull Pred out of NodeBuilderContext.
Each builder will have a different one, so it doesn't make sense to keep it in the context. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142447 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/StaticAnalyzer/Core/CoreEngine.cpp')
-rw-r--r--lib/StaticAnalyzer/Core/CoreEngine.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/StaticAnalyzer/Core/CoreEngine.cpp b/lib/StaticAnalyzer/Core/CoreEngine.cpp
index 0078922d69..d1c1e39d59 100644
--- a/lib/StaticAnalyzer/Core/CoreEngine.cpp
+++ b/lib/StaticAnalyzer/Core/CoreEngine.cpp
@@ -417,8 +417,8 @@ void CoreEngine::HandleBlockExit(const CFGBlock * B, ExplodedNode *Pred) {
void CoreEngine::HandleBranch(const Stmt *Cond, const Stmt *Term,
const CFGBlock * B, ExplodedNode *Pred) {
assert(B->succ_size() == 2);
- NodeBuilderContext Ctx(*this, Pred, B);
- SubEng.processBranch(Cond, Term, Ctx,
+ NodeBuilderContext Ctx(*this, B);
+ SubEng.processBranch(Cond, Term, Ctx, Pred,
*(B->succ_begin()), *(B->succ_begin()+1));
}
@@ -608,11 +608,12 @@ ExplodedNode *BranchNodeBuilder::generateNode(const Stmt *Condition,
const ProgramState *State,
const ProgramPointTag *Tag,
bool MarkAsSink) {
- ProgramPoint PP = PostCondition(Condition, C.Pred->getLocationContext(), Tag);
- ExplodedNode *N = generateNodeImpl(PP, State, C.Pred, MarkAsSink);
+ ProgramPoint PP = PostCondition(Condition,
+ BuilderPred->getLocationContext(), Tag);
+ ExplodedNode *N = generateNodeImpl(PP, State, BuilderPred, MarkAsSink);
assert(N);
// TODO: This needs to go - we should not change Pred!!!
- C.Pred = N;
+ BuilderPred = N;
return N;
}
@@ -625,7 +626,7 @@ ExplodedNode *BranchNodeBuilder::generateNode(const ProgramState *State,
return NULL;
if (!NodePred)
- NodePred = C.Pred;
+ NodePred = BuilderPred;
ProgramPoint Loc = BlockEdge(C.Block, branch ? DstT:DstF,
NodePred->getLocationContext());
ExplodedNode *Succ = generateNodeImpl(Loc, State, NodePred);