diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Analysis/CMakeLists.txt | 1 | ||||
-rw-r--r-- | lib/Analysis/GRExprEngineExperimentalChecks.cpp | 23 | ||||
-rw-r--r-- | lib/Frontend/AnalysisConsumer.cpp | 4 |
3 files changed, 27 insertions, 1 deletions
diff --git a/lib/Analysis/CMakeLists.txt b/lib/Analysis/CMakeLists.txt index 3638b831a7..8e8c1e7b25 100644 --- a/lib/Analysis/CMakeLists.txt +++ b/lib/Analysis/CMakeLists.txt @@ -30,6 +30,7 @@ add_clang_library(clangAnalysis GRBlockCounter.cpp GRCoreEngine.cpp GRExprEngine.cpp + GRExprEngineExperimentalChecks.cpp GRExprEngineInternalChecks.cpp GRState.cpp LiveVariables.cpp diff --git a/lib/Analysis/GRExprEngineExperimentalChecks.cpp b/lib/Analysis/GRExprEngineExperimentalChecks.cpp new file mode 100644 index 0000000000..e50dbeba68 --- /dev/null +++ b/lib/Analysis/GRExprEngineExperimentalChecks.cpp @@ -0,0 +1,23 @@ +//=-- GRExprEngineExperimentalChecks.h ------------------------------*- C++ -*-= +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines functions to instantiate and register experimental +// checks in GRExprEngine. +// +//===----------------------------------------------------------------------===// + +#include "GRExprEngineExperimentalChecks.h" +#include "clang/Analysis/LocalCheckers.h" + +using namespace clang; + +void clang::RegisterExperimentalChecks(GRExprEngine &Eng) { + RegisterPthreadLockChecker(Eng); +} + diff --git a/lib/Frontend/AnalysisConsumer.cpp b/lib/Frontend/AnalysisConsumer.cpp index d51730c20f..e8bd920d41 100644 --- a/lib/Frontend/AnalysisConsumer.cpp +++ b/lib/Frontend/AnalysisConsumer.cpp @@ -332,7 +332,9 @@ static void ActionGRExprEngine(AnalysisConsumer &C, AnalysisManager& mgr, Decl * Eng.RegisterInternalChecks(); // FIXME: Internal checks should just // automatically register. RegisterAppleChecks(Eng, *D); - + + if (C.Opts.EnableExperimentalChecks) + RegisterExperimentalChecks(Eng); // Set the graph auditor. llvm::OwningPtr<ExplodedNode::Auditor> Auditor; |