aboutsummaryrefslogtreecommitdiff
path: root/lib/Checker/GRCoreEngine.cpp
diff options
context:
space:
mode:
authorZhongxing Xu <xuzhongxing@gmail.com>2010-03-04 09:04:52 +0000
committerZhongxing Xu <xuzhongxing@gmail.com>2010-03-04 09:04:52 +0000
commit57d3b76761bdba265769deb497afa784935602be (patch)
tree2d6e2e3f667aaa22d167c011322684b667ac5ca8 /lib/Checker/GRCoreEngine.cpp
parent468ec6c0266e48fccb26ce50d5b915c645bb3c7b (diff)
When profiling Environment, also profile with AnalysisContext*, bacause
we now may have identical states with different analysis context. Set the right AnalysisContext in state when entering and leaving a callee. With both of the above changes, we can pass the test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97724 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Checker/GRCoreEngine.cpp')
-rw-r--r--lib/Checker/GRCoreEngine.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/Checker/GRCoreEngine.cpp b/lib/Checker/GRCoreEngine.cpp
index a9347d0164..63ac31d606 100644
--- a/lib/Checker/GRCoreEngine.cpp
+++ b/lib/Checker/GRCoreEngine.cpp
@@ -682,6 +682,7 @@ void GRCallExitNodeBuilder::GenerateNode(const GRState *state) {
// Get the callee's location context.
const StackFrameContext *LocCtx
= cast<StackFrameContext>(Pred->getLocationContext());
+ state = state->setAnalysisContext(LocCtx->getParent()->getAnalysisContext());
PostStmt Loc(LocCtx->getCallSite(), LocCtx->getParent());
bool isNew;