diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-03-27 07:25:52 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-03-27 07:25:52 +0000 |
commit | c04149299cc44f447c4bff8699db3dda757b027a (patch) | |
tree | fe68fbedccfea4b347fd2dd482cbaafc428f0af7 /clang/lib/Analysis/GRExprEngine.cpp | |
parent | f6d2919a3e4e0c5de4c2d2dc28983538ab1038c0 (diff) | |
download | bcm5719-llvm-c04149299cc44f447c4bff8699db3dda757b027a.tar.gz bcm5719-llvm-c04149299cc44f447c4bff8699db3dda757b027a.zip |
Added "GRAuditor" and "GRSimpleAPICheck" interface to allow simple stateless checkers to be injected into the analyzer.
Added "AnnotatedPath" class to record an annotated path that will be useful for inspecting paths.
Added some boilerplate code for simple checks of Apple's Foundation API.
llvm-svn: 48867
Diffstat (limited to 'clang/lib/Analysis/GRExprEngine.cpp')
-rw-r--r-- | clang/lib/Analysis/GRExprEngine.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/clang/lib/Analysis/GRExprEngine.cpp b/clang/lib/Analysis/GRExprEngine.cpp index bce1cbd90c7..b6f164a57f1 100644 --- a/clang/lib/Analysis/GRExprEngine.cpp +++ b/clang/lib/Analysis/GRExprEngine.cpp @@ -407,6 +407,19 @@ void GRExprEngine::ProcessStmt(Stmt* S, StmtNodeBuilder& builder) { CurrentStmt = S; NodeSet Dst; + // Set up our simple checks. + + if (!MsgExprChecks.empty()) + Builder->setObjCMsgExprAuditors( + (GRNodeAuditor<ValueState>**) &MsgExprChecks[0], + (GRNodeAuditor<ValueState>**) (&MsgExprChecks[0] + MsgExprChecks.size())); + + + if (!CallChecks.empty()) + Builder->setCallExprAuditors( + (GRNodeAuditor<ValueState>**) &CallChecks[0], + (GRNodeAuditor<ValueState>**) (&CallChecks[0] + CallChecks.size())); + // Create the cleaned state. CleanedState = StateMgr.RemoveDeadBindings(StmtEntryNode->getState(), |