Add support for 'PreStmt' program points to GRCoreEngine and GRStmtNodeBuilder.

llvm-svn: 76792
This commit is contained in:
Ted Kremenek 2009-07-22 21:40:46 +00:00
parent 8a2cb9cede
commit 2776079844
2 changed files with 7 additions and 3 deletions

View File

@ -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,

View File

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