summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/GRSimpleVals.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-03-27 17:17:22 +0000
committerTed Kremenek <kremenek@apple.com>2008-03-27 17:17:22 +0000
commita4d60b6de3197d0f5ef5ce653d0f3adce235422c (patch)
treeafdc4d629878ffa458025f0ef252ab3f69a283f6 /clang/lib/Analysis/GRSimpleVals.cpp
parentf89469e392dfafe165024f20db7edc2db86490ba (diff)
downloadbcm5719-llvm-a4d60b6de3197d0f5ef5ce653d0f3adce235422c.tar.gz
bcm5719-llvm-a4d60b6de3197d0f5ef5ce653d0f3adce235422c.zip
Add creation of BasicObjCFoundationChecks when running GRSimpleVals from the driver.
llvm-svn: 48886
Diffstat (limited to 'clang/lib/Analysis/GRSimpleVals.cpp')
-rw-r--r--clang/lib/Analysis/GRSimpleVals.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/clang/lib/Analysis/GRSimpleVals.cpp b/clang/lib/Analysis/GRSimpleVals.cpp
index b6e6b5087f1..520f6246bfe 100644
--- a/clang/lib/Analysis/GRSimpleVals.cpp
+++ b/clang/lib/Analysis/GRSimpleVals.cpp
@@ -14,6 +14,7 @@
//===----------------------------------------------------------------------===//
#include "GRSimpleVals.h"
+#include "BasicObjCFoundationChecks.h"
#include "clang/Analysis/PathSensitive/ValueState.h"
#include "clang/Basic/Diagnostic.h"
#include <sstream>
@@ -103,14 +104,19 @@ void EmitWarning(Diagnostic& Diag, SourceManager& SrcMgr,
unsigned RunGRSimpleVals(CFG& cfg, Decl& CD, ASTContext& Ctx,
Diagnostic& Diag, bool Visualize, bool TrimGraph) {
- if (Diag.hasErrorOccurred())
- return 0;
-
GRCoreEngine<GRExprEngine> Eng(cfg, CD, Ctx);
GRExprEngine* CheckerState = &Eng.getCheckerState();
+
+ // Set base transfer functions.
GRSimpleVals GRSV;
CheckerState->setTransferFunctions(GRSV);
+ // Add extra checkers.
+ llvm::OwningPtr<GRSimpleAPICheck> FoundationCheck(
+ CreateBasicObjCFoundationChecks(Ctx, &CheckerState->getStateManager()));
+
+ CheckerState->AddObjCMessageExprCheck(FoundationCheck.get());
+
// Execute the worklist algorithm.
Eng.ExecuteWorkList(100000);
OpenPOWER on IntegriCloud