summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2009-07-22 21:40:46 +0000
committerTed Kremenek <kremenek@apple.com>2009-07-22 21:40:46 +0000
commit2776079844572dd1ff443cfd30ceb999bf954647 (patch)
tree361a5faaa9c07602f7239d95ef27c2792d6910d6
parent8a2cb9cede41b2f3fb693e5aa8415a628c5285f8 (diff)
downloadbcm5719-llvm-2776079844572dd1ff443cfd30ceb999bf954647.tar.gz
bcm5719-llvm-2776079844572dd1ff443cfd30ceb999bf954647.zip
Add support for 'PreStmt' program points to GRCoreEngine and GRStmtNodeBuilder.
llvm-svn: 76792
-rw-r--r--clang/include/clang/Analysis/PathSensitive/GRCoreEngine.h3
-rw-r--r--clang/lib/Analysis/GRCoreEngine.cpp7
2 files changed, 7 insertions, 3 deletions
diff --git a/clang/include/clang/Analysis/PathSensitive/GRCoreEngine.h b/clang/include/clang/Analysis/PathSensitive/GRCoreEngine.h
index 0285ad69899..3d8b0ea18e4 100644
--- a/clang/include/clang/Analysis/PathSensitive/GRCoreEngine.h
+++ b/clang/include/clang/Analysis/PathSensitive/GRCoreEngine.h
@@ -142,7 +142,8 @@ public:
}
ExplodedNodeImpl*
- generateNodeImpl(PostStmt PP, const void* State, ExplodedNodeImpl* Pred);
+ generateNodeImpl(const ProgramPoint &PP, const void* State,
+ ExplodedNodeImpl* Pred);
ExplodedNodeImpl*
generateNodeImpl(Stmt* S, const void* State, ExplodedNodeImpl* Pred,
diff --git a/clang/lib/Analysis/GRCoreEngine.cpp b/clang/lib/Analysis/GRCoreEngine.cpp
index 5641baac5fc..5a45ad2ce4f 100644
--- a/clang/lib/Analysis/GRCoreEngine.cpp
+++ b/clang/lib/Analysis/GRCoreEngine.cpp
@@ -430,11 +430,14 @@ GRStmtNodeBuilderImpl::generateNodeImpl(Stmt* S, const void* State,
ExplodedNodeImpl* Pred,
ProgramPoint::Kind K,
const void *tag) {
- return generateNodeImpl(GetPostLoc(S, K, tag), State, Pred);
+ return K == ProgramPoint::PreStmtKind
+ ? generateNodeImpl(PreStmt(S, tag), State, Pred)
+ : generateNodeImpl(GetPostLoc(S, K, tag), State, Pred);
}
ExplodedNodeImpl*
-GRStmtNodeBuilderImpl::generateNodeImpl(PostStmt Loc, const void* State,
+GRStmtNodeBuilderImpl::generateNodeImpl(const ProgramPoint &Loc,
+ const void* State,
ExplodedNodeImpl* Pred) {
bool IsNew;
ExplodedNodeImpl* N = Eng.G->getNodeImpl(Loc, State, &IsNew);
OpenPOWER on IntegriCloud