[analyzer] Refactoring: Move checkers into lib/GR/Checkers and their own library, libclangGRCheckers
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122422 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/GR/AnalysisConsumer.cpp b/lib/GR/AnalysisConsumer.cpp
index 839ce04..850a440 100644
--- a/lib/GR/AnalysisConsumer.cpp
+++ b/lib/GR/AnalysisConsumer.cpp
@@ -28,8 +28,11 @@
#include "clang/GR/PathSensitive/GRExprEngine.h"
#include "clang/GR/PathSensitive/GRTransferFuncs.h"
#include "clang/GR/PathDiagnosticClients.h"
-#include "GRExprEngineExperimentalChecks.h"
-#include "GRExprEngineInternalChecks.h"
+
+// FIXME: Restructure checker registration.
+#include "Checkers/GRExprEngineExperimentalChecks.h"
+#include "Checkers/GRExprEngineInternalChecks.h"
+
#include "clang/Basic/FileManager.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Frontend/AnalyzerOptions.h"
diff --git a/lib/GR/AnalyzerStatsChecker.cpp b/lib/GR/AnalyzerStatsChecker.cpp
index 2a229cc..2aa1515 100644
--- a/lib/GR/AnalyzerStatsChecker.cpp
+++ b/lib/GR/AnalyzerStatsChecker.cpp
@@ -12,7 +12,10 @@
#include "clang/GR/PathSensitive/CheckerVisitor.h"
#include "clang/GR/PathSensitive/ExplodedGraph.h"
#include "clang/GR/BugReporter/BugReporter.h"
-#include "GRExprEngineExperimentalChecks.h"
+
+// FIXME: Restructure checker registration.
+#include "Checkers/GRExprEngineExperimentalChecks.h"
+
#include "clang/Basic/SourceManager.h"
#include "llvm/ADT/SmallPtrSet.h"
diff --git a/lib/GR/CMakeLists.txt b/lib/GR/CMakeLists.txt
index ed59398..9cf7a3d 100644
--- a/lib/GR/CMakeLists.txt
+++ b/lib/GR/CMakeLists.txt
@@ -3,85 +3,41 @@
set(LLVM_USED_LIBS clangBasic clangLex clangAST clangFrontend clangRewrite)
add_clang_library(clangGRCore
- AdjustedReturnValueChecker.cpp
AggExprVisitor.cpp
AnalysisConsumer.cpp
AnalysisManager.cpp
AnalyzerStatsChecker.cpp
- ArrayBoundChecker.cpp
- AttrNonNullChecker.cpp
BasicConstraintManager.cpp
- BasicObjCFoundationChecks.cpp
BasicStore.cpp
BasicValueFactory.cpp
BugReporter.cpp
BugReporterVisitors.cpp
- BuiltinFunctionChecker.cpp
CFRefCount.cpp
- CStringChecker.cpp
- CallAndMessageChecker.cpp
- CastSizeChecker.cpp
- CastToStructChecker.cpp
- CheckDeadStores.cpp
- CheckObjCDealloc.cpp
- CheckObjCInstMethSignature.cpp
- CheckSecuritySyntaxOnly.cpp
- CheckSizeofPointer.cpp
Checker.cpp
CheckerHelpers.cpp
- ChrootChecker.cpp
- DereferenceChecker.cpp
- DivZeroChecker.cpp
Environment.cpp
ExplodedGraph.cpp
- FixedAddressChecker.cpp
FlatStore.cpp
FrontendActions.cpp
GRBlockCounter.cpp
GRCXXExprEngine.cpp
GRCoreEngine.cpp
GRExprEngine.cpp
- GRExprEngineExperimentalChecks.cpp
GRState.cpp
HTMLDiagnostics.cpp
- IdempotentOperationChecker.cpp
- LLVMConventionsChecker.cpp
- MacOSXAPIChecker.cpp
- MallocChecker.cpp
ManagerRegistry.cpp
MemRegion.cpp
- NSAutoreleasePoolChecker.cpp
- NSErrorChecker.cpp
- NoReturnFunctionChecker.cpp
- OSAtomicChecker.cpp
- ObjCAtSyncChecker.cpp
- ObjCUnusedIVarsChecker.cpp
PathDiagnostic.cpp
PlistDiagnostics.cpp
- PointerArithChecker.cpp
- PointerSubChecker.cpp
- PthreadLockChecker.cpp
RangeConstraintManager.cpp
RegionStore.cpp
- ReturnPointerRangeChecker.cpp
- ReturnUndefChecker.cpp
- SValBuilder.cpp
- SVals.cpp
SimpleConstraintManager.cpp
SimpleSValBuilder.cpp
- StackAddrLeakChecker.cpp
Store.cpp
- StreamChecker.cpp
+ SValBuilder.cpp
+ SVals.cpp
SymbolManager.cpp
TextPathDiagnostics.cpp
- UndefBranchChecker.cpp
- UndefCapturedBlockVarChecker.cpp
- UndefResultChecker.cpp
- UndefinedArraySubscriptChecker.cpp
- UndefinedAssignmentChecker.cpp
- UnixAPIChecker.cpp
- UnreachableCodeChecker.cpp
- VLASizeChecker.cpp
)
add_dependencies(clangGRCore ClangAttrClasses ClangAttrList ClangDeclNodes
diff --git a/lib/GR/AdjustedReturnValueChecker.cpp b/lib/GR/Checkers/AdjustedReturnValueChecker.cpp
similarity index 100%
rename from lib/GR/AdjustedReturnValueChecker.cpp
rename to lib/GR/Checkers/AdjustedReturnValueChecker.cpp
diff --git a/lib/GR/ArrayBoundChecker.cpp b/lib/GR/Checkers/ArrayBoundChecker.cpp
similarity index 100%
rename from lib/GR/ArrayBoundChecker.cpp
rename to lib/GR/Checkers/ArrayBoundChecker.cpp
diff --git a/lib/GR/AttrNonNullChecker.cpp b/lib/GR/Checkers/AttrNonNullChecker.cpp
similarity index 100%
rename from lib/GR/AttrNonNullChecker.cpp
rename to lib/GR/Checkers/AttrNonNullChecker.cpp
diff --git a/lib/GR/BasicObjCFoundationChecks.cpp b/lib/GR/Checkers/BasicObjCFoundationChecks.cpp
similarity index 100%
rename from lib/GR/BasicObjCFoundationChecks.cpp
rename to lib/GR/Checkers/BasicObjCFoundationChecks.cpp
diff --git a/lib/GR/BasicObjCFoundationChecks.h b/lib/GR/Checkers/BasicObjCFoundationChecks.h
similarity index 100%
rename from lib/GR/BasicObjCFoundationChecks.h
rename to lib/GR/Checkers/BasicObjCFoundationChecks.h
diff --git a/lib/GR/BuiltinFunctionChecker.cpp b/lib/GR/Checkers/BuiltinFunctionChecker.cpp
similarity index 100%
rename from lib/GR/BuiltinFunctionChecker.cpp
rename to lib/GR/Checkers/BuiltinFunctionChecker.cpp
diff --git a/lib/GR/Checkers/CMakeLists.txt b/lib/GR/Checkers/CMakeLists.txt
new file mode 100644
index 0000000..700adb5
--- /dev/null
+++ b/lib/GR/Checkers/CMakeLists.txt
@@ -0,0 +1,49 @@
+add_clang_library(clangGRCheckers
+ AdjustedReturnValueChecker.cpp
+ ArrayBoundChecker.cpp
+ AttrNonNullChecker.cpp
+ BasicObjCFoundationChecks.cpp
+ BuiltinFunctionChecker.cpp
+ CallAndMessageChecker.cpp
+ CastSizeChecker.cpp
+ CastToStructChecker.cpp
+ CheckDeadStores.cpp
+ CheckObjCDealloc.cpp
+ CheckObjCInstMethSignature.cpp
+ CheckSecuritySyntaxOnly.cpp
+ CheckSizeofPointer.cpp
+ ChrootChecker.cpp
+ CStringChecker.cpp
+ DereferenceChecker.cpp
+ DivZeroChecker.cpp
+ FixedAddressChecker.cpp
+ GRExprEngineExperimentalChecks.cpp
+ IdempotentOperationChecker.cpp
+ LLVMConventionsChecker.cpp
+ MacOSXAPIChecker.cpp
+ MallocChecker.cpp
+ NSAutoreleasePoolChecker.cpp
+ NSErrorChecker.cpp
+ NoReturnFunctionChecker.cpp
+ OSAtomicChecker.cpp
+ ObjCAtSyncChecker.cpp
+ ObjCUnusedIVarsChecker.cpp
+ PointerArithChecker.cpp
+ PointerSubChecker.cpp
+ PthreadLockChecker.cpp
+ ReturnPointerRangeChecker.cpp
+ ReturnUndefChecker.cpp
+ StackAddrLeakChecker.cpp
+ StreamChecker.cpp
+ UndefBranchChecker.cpp
+ UndefCapturedBlockVarChecker.cpp
+ UndefResultChecker.cpp
+ UndefinedArraySubscriptChecker.cpp
+ UndefinedAssignmentChecker.cpp
+ UnixAPIChecker.cpp
+ UnreachableCodeChecker.cpp
+ VLASizeChecker.cpp
+ )
+
+add_dependencies(clangGRCore ClangAttrClasses ClangAttrList ClangDeclNodes
+ ClangStmtNodes)
diff --git a/lib/GR/CStringChecker.cpp b/lib/GR/Checkers/CStringChecker.cpp
similarity index 100%
rename from lib/GR/CStringChecker.cpp
rename to lib/GR/Checkers/CStringChecker.cpp
diff --git a/lib/GR/CallAndMessageChecker.cpp b/lib/GR/Checkers/CallAndMessageChecker.cpp
similarity index 100%
rename from lib/GR/CallAndMessageChecker.cpp
rename to lib/GR/Checkers/CallAndMessageChecker.cpp
diff --git a/lib/GR/CastSizeChecker.cpp b/lib/GR/Checkers/CastSizeChecker.cpp
similarity index 100%
rename from lib/GR/CastSizeChecker.cpp
rename to lib/GR/Checkers/CastSizeChecker.cpp
diff --git a/lib/GR/CastToStructChecker.cpp b/lib/GR/Checkers/CastToStructChecker.cpp
similarity index 100%
rename from lib/GR/CastToStructChecker.cpp
rename to lib/GR/Checkers/CastToStructChecker.cpp
diff --git a/lib/GR/CheckDeadStores.cpp b/lib/GR/Checkers/CheckDeadStores.cpp
similarity index 100%
rename from lib/GR/CheckDeadStores.cpp
rename to lib/GR/Checkers/CheckDeadStores.cpp
diff --git a/lib/GR/CheckObjCDealloc.cpp b/lib/GR/Checkers/CheckObjCDealloc.cpp
similarity index 100%
rename from lib/GR/CheckObjCDealloc.cpp
rename to lib/GR/Checkers/CheckObjCDealloc.cpp
diff --git a/lib/GR/CheckObjCInstMethSignature.cpp b/lib/GR/Checkers/CheckObjCInstMethSignature.cpp
similarity index 100%
rename from lib/GR/CheckObjCInstMethSignature.cpp
rename to lib/GR/Checkers/CheckObjCInstMethSignature.cpp
diff --git a/lib/GR/CheckSecuritySyntaxOnly.cpp b/lib/GR/Checkers/CheckSecuritySyntaxOnly.cpp
similarity index 100%
rename from lib/GR/CheckSecuritySyntaxOnly.cpp
rename to lib/GR/Checkers/CheckSecuritySyntaxOnly.cpp
diff --git a/lib/GR/CheckSizeofPointer.cpp b/lib/GR/Checkers/CheckSizeofPointer.cpp
similarity index 100%
rename from lib/GR/CheckSizeofPointer.cpp
rename to lib/GR/Checkers/CheckSizeofPointer.cpp
diff --git a/lib/GR/ChrootChecker.cpp b/lib/GR/Checkers/ChrootChecker.cpp
similarity index 100%
rename from lib/GR/ChrootChecker.cpp
rename to lib/GR/Checkers/ChrootChecker.cpp
diff --git a/lib/GR/DereferenceChecker.cpp b/lib/GR/Checkers/DereferenceChecker.cpp
similarity index 100%
rename from lib/GR/DereferenceChecker.cpp
rename to lib/GR/Checkers/DereferenceChecker.cpp
diff --git a/lib/GR/DivZeroChecker.cpp b/lib/GR/Checkers/DivZeroChecker.cpp
similarity index 100%
rename from lib/GR/DivZeroChecker.cpp
rename to lib/GR/Checkers/DivZeroChecker.cpp
diff --git a/lib/GR/FixedAddressChecker.cpp b/lib/GR/Checkers/FixedAddressChecker.cpp
similarity index 100%
rename from lib/GR/FixedAddressChecker.cpp
rename to lib/GR/Checkers/FixedAddressChecker.cpp
diff --git a/lib/GR/GRExprEngineExperimentalChecks.cpp b/lib/GR/Checkers/GRExprEngineExperimentalChecks.cpp
similarity index 100%
rename from lib/GR/GRExprEngineExperimentalChecks.cpp
rename to lib/GR/Checkers/GRExprEngineExperimentalChecks.cpp
diff --git a/lib/GR/GRExprEngineExperimentalChecks.h b/lib/GR/Checkers/GRExprEngineExperimentalChecks.h
similarity index 100%
rename from lib/GR/GRExprEngineExperimentalChecks.h
rename to lib/GR/Checkers/GRExprEngineExperimentalChecks.h
diff --git a/lib/GR/GRExprEngineInternalChecks.h b/lib/GR/Checkers/GRExprEngineInternalChecks.h
similarity index 100%
rename from lib/GR/GRExprEngineInternalChecks.h
rename to lib/GR/Checkers/GRExprEngineInternalChecks.h
diff --git a/lib/GR/IdempotentOperationChecker.cpp b/lib/GR/Checkers/IdempotentOperationChecker.cpp
similarity index 100%
rename from lib/GR/IdempotentOperationChecker.cpp
rename to lib/GR/Checkers/IdempotentOperationChecker.cpp
diff --git a/lib/GR/LLVMConventionsChecker.cpp b/lib/GR/Checkers/LLVMConventionsChecker.cpp
similarity index 100%
rename from lib/GR/LLVMConventionsChecker.cpp
rename to lib/GR/Checkers/LLVMConventionsChecker.cpp
diff --git a/lib/GR/MacOSXAPIChecker.cpp b/lib/GR/Checkers/MacOSXAPIChecker.cpp
similarity index 100%
rename from lib/GR/MacOSXAPIChecker.cpp
rename to lib/GR/Checkers/MacOSXAPIChecker.cpp
diff --git a/lib/GR/Checkers/Makefile b/lib/GR/Checkers/Makefile
new file mode 100644
index 0000000..b3d213a
--- /dev/null
+++ b/lib/GR/Checkers/Makefile
@@ -0,0 +1,17 @@
+##===- clang/lib/Checker/Makefile --------------------------*- Makefile -*-===##
+#
+# The LLVM Compiler Infrastructure
+#
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
+#
+##===----------------------------------------------------------------------===##
+#
+# This implements analyses built on top of source-level CFGs.
+#
+##===----------------------------------------------------------------------===##
+
+CLANG_LEVEL := ../../..
+LIBRARYNAME := clangGRCheckers
+
+include $(CLANG_LEVEL)/Makefile
diff --git a/lib/GR/MallocChecker.cpp b/lib/GR/Checkers/MallocChecker.cpp
similarity index 100%
rename from lib/GR/MallocChecker.cpp
rename to lib/GR/Checkers/MallocChecker.cpp
diff --git a/lib/GR/NSAutoreleasePoolChecker.cpp b/lib/GR/Checkers/NSAutoreleasePoolChecker.cpp
similarity index 100%
rename from lib/GR/NSAutoreleasePoolChecker.cpp
rename to lib/GR/Checkers/NSAutoreleasePoolChecker.cpp
diff --git a/lib/GR/NSErrorChecker.cpp b/lib/GR/Checkers/NSErrorChecker.cpp
similarity index 100%
rename from lib/GR/NSErrorChecker.cpp
rename to lib/GR/Checkers/NSErrorChecker.cpp
diff --git a/lib/GR/NoReturnFunctionChecker.cpp b/lib/GR/Checkers/NoReturnFunctionChecker.cpp
similarity index 100%
rename from lib/GR/NoReturnFunctionChecker.cpp
rename to lib/GR/Checkers/NoReturnFunctionChecker.cpp
diff --git a/lib/GR/OSAtomicChecker.cpp b/lib/GR/Checkers/OSAtomicChecker.cpp
similarity index 100%
rename from lib/GR/OSAtomicChecker.cpp
rename to lib/GR/Checkers/OSAtomicChecker.cpp
diff --git a/lib/GR/ObjCAtSyncChecker.cpp b/lib/GR/Checkers/ObjCAtSyncChecker.cpp
similarity index 100%
rename from lib/GR/ObjCAtSyncChecker.cpp
rename to lib/GR/Checkers/ObjCAtSyncChecker.cpp
diff --git a/lib/GR/ObjCUnusedIVarsChecker.cpp b/lib/GR/Checkers/ObjCUnusedIVarsChecker.cpp
similarity index 100%
rename from lib/GR/ObjCUnusedIVarsChecker.cpp
rename to lib/GR/Checkers/ObjCUnusedIVarsChecker.cpp
diff --git a/lib/GR/PointerArithChecker.cpp b/lib/GR/Checkers/PointerArithChecker.cpp
similarity index 100%
rename from lib/GR/PointerArithChecker.cpp
rename to lib/GR/Checkers/PointerArithChecker.cpp
diff --git a/lib/GR/PointerSubChecker.cpp b/lib/GR/Checkers/PointerSubChecker.cpp
similarity index 100%
rename from lib/GR/PointerSubChecker.cpp
rename to lib/GR/Checkers/PointerSubChecker.cpp
diff --git a/lib/GR/PthreadLockChecker.cpp b/lib/GR/Checkers/PthreadLockChecker.cpp
similarity index 100%
rename from lib/GR/PthreadLockChecker.cpp
rename to lib/GR/Checkers/PthreadLockChecker.cpp
diff --git a/lib/GR/ReturnPointerRangeChecker.cpp b/lib/GR/Checkers/ReturnPointerRangeChecker.cpp
similarity index 100%
rename from lib/GR/ReturnPointerRangeChecker.cpp
rename to lib/GR/Checkers/ReturnPointerRangeChecker.cpp
diff --git a/lib/GR/ReturnUndefChecker.cpp b/lib/GR/Checkers/ReturnUndefChecker.cpp
similarity index 100%
rename from lib/GR/ReturnUndefChecker.cpp
rename to lib/GR/Checkers/ReturnUndefChecker.cpp
diff --git a/lib/GR/StackAddrLeakChecker.cpp b/lib/GR/Checkers/StackAddrLeakChecker.cpp
similarity index 100%
rename from lib/GR/StackAddrLeakChecker.cpp
rename to lib/GR/Checkers/StackAddrLeakChecker.cpp
diff --git a/lib/GR/StreamChecker.cpp b/lib/GR/Checkers/StreamChecker.cpp
similarity index 100%
rename from lib/GR/StreamChecker.cpp
rename to lib/GR/Checkers/StreamChecker.cpp
diff --git a/lib/GR/UndefBranchChecker.cpp b/lib/GR/Checkers/UndefBranchChecker.cpp
similarity index 100%
rename from lib/GR/UndefBranchChecker.cpp
rename to lib/GR/Checkers/UndefBranchChecker.cpp
diff --git a/lib/GR/UndefCapturedBlockVarChecker.cpp b/lib/GR/Checkers/UndefCapturedBlockVarChecker.cpp
similarity index 100%
rename from lib/GR/UndefCapturedBlockVarChecker.cpp
rename to lib/GR/Checkers/UndefCapturedBlockVarChecker.cpp
diff --git a/lib/GR/UndefResultChecker.cpp b/lib/GR/Checkers/UndefResultChecker.cpp
similarity index 100%
rename from lib/GR/UndefResultChecker.cpp
rename to lib/GR/Checkers/UndefResultChecker.cpp
diff --git a/lib/GR/UndefinedArraySubscriptChecker.cpp b/lib/GR/Checkers/UndefinedArraySubscriptChecker.cpp
similarity index 100%
rename from lib/GR/UndefinedArraySubscriptChecker.cpp
rename to lib/GR/Checkers/UndefinedArraySubscriptChecker.cpp
diff --git a/lib/GR/UndefinedAssignmentChecker.cpp b/lib/GR/Checkers/UndefinedAssignmentChecker.cpp
similarity index 100%
rename from lib/GR/UndefinedAssignmentChecker.cpp
rename to lib/GR/Checkers/UndefinedAssignmentChecker.cpp
diff --git a/lib/GR/UnixAPIChecker.cpp b/lib/GR/Checkers/UnixAPIChecker.cpp
similarity index 100%
rename from lib/GR/UnixAPIChecker.cpp
rename to lib/GR/Checkers/UnixAPIChecker.cpp
diff --git a/lib/GR/UnreachableCodeChecker.cpp b/lib/GR/Checkers/UnreachableCodeChecker.cpp
similarity index 100%
rename from lib/GR/UnreachableCodeChecker.cpp
rename to lib/GR/Checkers/UnreachableCodeChecker.cpp
diff --git a/lib/GR/VLASizeChecker.cpp b/lib/GR/Checkers/VLASizeChecker.cpp
similarity index 100%
rename from lib/GR/VLASizeChecker.cpp
rename to lib/GR/Checkers/VLASizeChecker.cpp
diff --git a/lib/GR/GRExprEngine.cpp b/lib/GR/GRExprEngine.cpp
index da32592..8743f71 100644
--- a/lib/GR/GRExprEngine.cpp
+++ b/lib/GR/GRExprEngine.cpp
@@ -12,7 +12,10 @@
// functions and build the ExplodedGraph at the expression level.
//
//===----------------------------------------------------------------------===//
-#include "GRExprEngineInternalChecks.h"
+
+// FIXME: Restructure checker registration.
+#include "Checkers/GRExprEngineInternalChecks.h"
+
#include "clang/GR/BugReporter/BugType.h"
#include "clang/GR/PathSensitive/AnalysisManager.h"
#include "clang/GR/PathSensitive/GRExprEngine.h"
diff --git a/lib/GR/Makefile b/lib/GR/Makefile
index 71066ef..3261983 100644
--- a/lib/GR/Makefile
+++ b/lib/GR/Makefile
@@ -13,6 +13,7 @@
CLANG_LEVEL := ../..
LIBRARYNAME := clangGRCore
+PARALLEL_DIRS := Checkers
include $(CLANG_LEVEL)/Makefile