summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/FrontendTool/CMakeLists.txt2
-rw-r--r--clang/lib/GR/AnalysisConsumer.cpp7
-rw-r--r--clang/lib/GR/AnalyzerStatsChecker.cpp5
-rw-r--r--clang/lib/GR/CMakeLists.txt48
-rw-r--r--clang/lib/GR/Checkers/AdjustedReturnValueChecker.cpp (renamed from clang/lib/GR/AdjustedReturnValueChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/ArrayBoundChecker.cpp (renamed from clang/lib/GR/ArrayBoundChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/AttrNonNullChecker.cpp (renamed from clang/lib/GR/AttrNonNullChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/BasicObjCFoundationChecks.cpp (renamed from clang/lib/GR/BasicObjCFoundationChecks.cpp)0
-rw-r--r--clang/lib/GR/Checkers/BasicObjCFoundationChecks.h (renamed from clang/lib/GR/BasicObjCFoundationChecks.h)0
-rw-r--r--clang/lib/GR/Checkers/BuiltinFunctionChecker.cpp (renamed from clang/lib/GR/BuiltinFunctionChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/CMakeLists.txt49
-rw-r--r--clang/lib/GR/Checkers/CStringChecker.cpp (renamed from clang/lib/GR/CStringChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/CallAndMessageChecker.cpp (renamed from clang/lib/GR/CallAndMessageChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/CastSizeChecker.cpp (renamed from clang/lib/GR/CastSizeChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/CastToStructChecker.cpp (renamed from clang/lib/GR/CastToStructChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/CheckDeadStores.cpp (renamed from clang/lib/GR/CheckDeadStores.cpp)0
-rw-r--r--clang/lib/GR/Checkers/CheckObjCDealloc.cpp (renamed from clang/lib/GR/CheckObjCDealloc.cpp)0
-rw-r--r--clang/lib/GR/Checkers/CheckObjCInstMethSignature.cpp (renamed from clang/lib/GR/CheckObjCInstMethSignature.cpp)0
-rw-r--r--clang/lib/GR/Checkers/CheckSecuritySyntaxOnly.cpp (renamed from clang/lib/GR/CheckSecuritySyntaxOnly.cpp)0
-rw-r--r--clang/lib/GR/Checkers/CheckSizeofPointer.cpp (renamed from clang/lib/GR/CheckSizeofPointer.cpp)0
-rw-r--r--clang/lib/GR/Checkers/ChrootChecker.cpp (renamed from clang/lib/GR/ChrootChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/DereferenceChecker.cpp (renamed from clang/lib/GR/DereferenceChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/DivZeroChecker.cpp (renamed from clang/lib/GR/DivZeroChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/FixedAddressChecker.cpp (renamed from clang/lib/GR/FixedAddressChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/GRExprEngineExperimentalChecks.cpp (renamed from clang/lib/GR/GRExprEngineExperimentalChecks.cpp)0
-rw-r--r--clang/lib/GR/Checkers/GRExprEngineExperimentalChecks.h (renamed from clang/lib/GR/GRExprEngineExperimentalChecks.h)0
-rw-r--r--clang/lib/GR/Checkers/GRExprEngineInternalChecks.h (renamed from clang/lib/GR/GRExprEngineInternalChecks.h)0
-rw-r--r--clang/lib/GR/Checkers/IdempotentOperationChecker.cpp (renamed from clang/lib/GR/IdempotentOperationChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/LLVMConventionsChecker.cpp (renamed from clang/lib/GR/LLVMConventionsChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/MacOSXAPIChecker.cpp (renamed from clang/lib/GR/MacOSXAPIChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/Makefile17
-rw-r--r--clang/lib/GR/Checkers/MallocChecker.cpp (renamed from clang/lib/GR/MallocChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/NSAutoreleasePoolChecker.cpp (renamed from clang/lib/GR/NSAutoreleasePoolChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/NSErrorChecker.cpp (renamed from clang/lib/GR/NSErrorChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/NoReturnFunctionChecker.cpp (renamed from clang/lib/GR/NoReturnFunctionChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/OSAtomicChecker.cpp (renamed from clang/lib/GR/OSAtomicChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/ObjCAtSyncChecker.cpp (renamed from clang/lib/GR/ObjCAtSyncChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/ObjCUnusedIVarsChecker.cpp (renamed from clang/lib/GR/ObjCUnusedIVarsChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/PointerArithChecker.cpp (renamed from clang/lib/GR/PointerArithChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/PointerSubChecker.cpp (renamed from clang/lib/GR/PointerSubChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/PthreadLockChecker.cpp (renamed from clang/lib/GR/PthreadLockChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/ReturnPointerRangeChecker.cpp (renamed from clang/lib/GR/ReturnPointerRangeChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/ReturnUndefChecker.cpp (renamed from clang/lib/GR/ReturnUndefChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/StackAddrLeakChecker.cpp (renamed from clang/lib/GR/StackAddrLeakChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/StreamChecker.cpp (renamed from clang/lib/GR/StreamChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/UndefBranchChecker.cpp (renamed from clang/lib/GR/UndefBranchChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/UndefCapturedBlockVarChecker.cpp (renamed from clang/lib/GR/UndefCapturedBlockVarChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/UndefResultChecker.cpp (renamed from clang/lib/GR/UndefResultChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/UndefinedArraySubscriptChecker.cpp (renamed from clang/lib/GR/UndefinedArraySubscriptChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/UndefinedAssignmentChecker.cpp (renamed from clang/lib/GR/UndefinedAssignmentChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/UnixAPIChecker.cpp (renamed from clang/lib/GR/UnixAPIChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/UnreachableCodeChecker.cpp (renamed from clang/lib/GR/UnreachableCodeChecker.cpp)0
-rw-r--r--clang/lib/GR/Checkers/VLASizeChecker.cpp (renamed from clang/lib/GR/VLASizeChecker.cpp)0
-rw-r--r--clang/lib/GR/GRExprEngine.cpp5
-rw-r--r--clang/lib/GR/Makefile1
55 files changed, 83 insertions, 51 deletions
diff --git a/clang/lib/FrontendTool/CMakeLists.txt b/clang/lib/FrontendTool/CMakeLists.txt
index cfd5fbda08d..f4ace981464 100644
--- a/clang/lib/FrontendTool/CMakeLists.txt
+++ b/clang/lib/FrontendTool/CMakeLists.txt
@@ -1,7 +1,7 @@
set(LLVM_NO_RTTI 1)
set(LLVM_USED_LIBS clangDriver clangFrontend clangRewrite clangCodeGen
- clangGRCore)
+ clangGRCheckers clangGRCore)
add_clang_library(clangFrontendTool
ExecuteCompilerInvocation.cpp
diff --git a/clang/lib/GR/AnalysisConsumer.cpp b/clang/lib/GR/AnalysisConsumer.cpp
index 839ce044fd4..850a4407427 100644
--- a/clang/lib/GR/AnalysisConsumer.cpp
+++ b/clang/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/clang/lib/GR/AnalyzerStatsChecker.cpp b/clang/lib/GR/AnalyzerStatsChecker.cpp
index 2a229cc7e9c..2aa1515bf37 100644
--- a/clang/lib/GR/AnalyzerStatsChecker.cpp
+++ b/clang/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/clang/lib/GR/CMakeLists.txt b/clang/lib/GR/CMakeLists.txt
index ed59398d991..9cf7a3dcb2e 100644
--- a/clang/lib/GR/CMakeLists.txt
+++ b/clang/lib/GR/CMakeLists.txt
@@ -3,85 +3,41 @@ set(LLVM_NO_RTTI 1)
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/clang/lib/GR/AdjustedReturnValueChecker.cpp b/clang/lib/GR/Checkers/AdjustedReturnValueChecker.cpp
index 281d74f926c..281d74f926c 100644
--- a/clang/lib/GR/AdjustedReturnValueChecker.cpp
+++ b/clang/lib/GR/Checkers/AdjustedReturnValueChecker.cpp
diff --git a/clang/lib/GR/ArrayBoundChecker.cpp b/clang/lib/GR/Checkers/ArrayBoundChecker.cpp
index a36e13e4fe6..a36e13e4fe6 100644
--- a/clang/lib/GR/ArrayBoundChecker.cpp
+++ b/clang/lib/GR/Checkers/ArrayBoundChecker.cpp
diff --git a/clang/lib/GR/AttrNonNullChecker.cpp b/clang/lib/GR/Checkers/AttrNonNullChecker.cpp
index 5be12783bd8..5be12783bd8 100644
--- a/clang/lib/GR/AttrNonNullChecker.cpp
+++ b/clang/lib/GR/Checkers/AttrNonNullChecker.cpp
diff --git a/clang/lib/GR/BasicObjCFoundationChecks.cpp b/clang/lib/GR/Checkers/BasicObjCFoundationChecks.cpp
index dc536957047..dc536957047 100644
--- a/clang/lib/GR/BasicObjCFoundationChecks.cpp
+++ b/clang/lib/GR/Checkers/BasicObjCFoundationChecks.cpp
diff --git a/clang/lib/GR/BasicObjCFoundationChecks.h b/clang/lib/GR/Checkers/BasicObjCFoundationChecks.h
index 6ad850b9735..6ad850b9735 100644
--- a/clang/lib/GR/BasicObjCFoundationChecks.h
+++ b/clang/lib/GR/Checkers/BasicObjCFoundationChecks.h
diff --git a/clang/lib/GR/BuiltinFunctionChecker.cpp b/clang/lib/GR/Checkers/BuiltinFunctionChecker.cpp
index 08fcbd6f4ef..08fcbd6f4ef 100644
--- a/clang/lib/GR/BuiltinFunctionChecker.cpp
+++ b/clang/lib/GR/Checkers/BuiltinFunctionChecker.cpp
diff --git a/clang/lib/GR/Checkers/CMakeLists.txt b/clang/lib/GR/Checkers/CMakeLists.txt
new file mode 100644
index 00000000000..700adb544b8
--- /dev/null
+++ b/clang/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/clang/lib/GR/CStringChecker.cpp b/clang/lib/GR/Checkers/CStringChecker.cpp
index db4d86f0e3b..db4d86f0e3b 100644
--- a/clang/lib/GR/CStringChecker.cpp
+++ b/clang/lib/GR/Checkers/CStringChecker.cpp
diff --git a/clang/lib/GR/CallAndMessageChecker.cpp b/clang/lib/GR/Checkers/CallAndMessageChecker.cpp
index e68569ce7e8..e68569ce7e8 100644
--- a/clang/lib/GR/CallAndMessageChecker.cpp
+++ b/clang/lib/GR/Checkers/CallAndMessageChecker.cpp
diff --git a/clang/lib/GR/CastSizeChecker.cpp b/clang/lib/GR/Checkers/CastSizeChecker.cpp
index 1248d12c911..1248d12c911 100644
--- a/clang/lib/GR/CastSizeChecker.cpp
+++ b/clang/lib/GR/Checkers/CastSizeChecker.cpp
diff --git a/clang/lib/GR/CastToStructChecker.cpp b/clang/lib/GR/Checkers/CastToStructChecker.cpp
index 2a010b210b0..2a010b210b0 100644
--- a/clang/lib/GR/CastToStructChecker.cpp
+++ b/clang/lib/GR/Checkers/CastToStructChecker.cpp
diff --git a/clang/lib/GR/CheckDeadStores.cpp b/clang/lib/GR/Checkers/CheckDeadStores.cpp
index 7e90781bd30..7e90781bd30 100644
--- a/clang/lib/GR/CheckDeadStores.cpp
+++ b/clang/lib/GR/Checkers/CheckDeadStores.cpp
diff --git a/clang/lib/GR/CheckObjCDealloc.cpp b/clang/lib/GR/Checkers/CheckObjCDealloc.cpp
index c3d511ba025..c3d511ba025 100644
--- a/clang/lib/GR/CheckObjCDealloc.cpp
+++ b/clang/lib/GR/Checkers/CheckObjCDealloc.cpp
diff --git a/clang/lib/GR/CheckObjCInstMethSignature.cpp b/clang/lib/GR/Checkers/CheckObjCInstMethSignature.cpp
index 2b83d13e759..2b83d13e759 100644
--- a/clang/lib/GR/CheckObjCInstMethSignature.cpp
+++ b/clang/lib/GR/Checkers/CheckObjCInstMethSignature.cpp
diff --git a/clang/lib/GR/CheckSecuritySyntaxOnly.cpp b/clang/lib/GR/Checkers/CheckSecuritySyntaxOnly.cpp
index bdf18ca7608..bdf18ca7608 100644
--- a/clang/lib/GR/CheckSecuritySyntaxOnly.cpp
+++ b/clang/lib/GR/Checkers/CheckSecuritySyntaxOnly.cpp
diff --git a/clang/lib/GR/CheckSizeofPointer.cpp b/clang/lib/GR/Checkers/CheckSizeofPointer.cpp
index 4cf5eb70069..4cf5eb70069 100644
--- a/clang/lib/GR/CheckSizeofPointer.cpp
+++ b/clang/lib/GR/Checkers/CheckSizeofPointer.cpp
diff --git a/clang/lib/GR/ChrootChecker.cpp b/clang/lib/GR/Checkers/ChrootChecker.cpp
index 2108094ae11..2108094ae11 100644
--- a/clang/lib/GR/ChrootChecker.cpp
+++ b/clang/lib/GR/Checkers/ChrootChecker.cpp
diff --git a/clang/lib/GR/DereferenceChecker.cpp b/clang/lib/GR/Checkers/DereferenceChecker.cpp
index 72c88b1a3c7..72c88b1a3c7 100644
--- a/clang/lib/GR/DereferenceChecker.cpp
+++ b/clang/lib/GR/Checkers/DereferenceChecker.cpp
diff --git a/clang/lib/GR/DivZeroChecker.cpp b/clang/lib/GR/Checkers/DivZeroChecker.cpp
index e76d84672f7..e76d84672f7 100644
--- a/clang/lib/GR/DivZeroChecker.cpp
+++ b/clang/lib/GR/Checkers/DivZeroChecker.cpp
diff --git a/clang/lib/GR/FixedAddressChecker.cpp b/clang/lib/GR/Checkers/FixedAddressChecker.cpp
index ede6b555d48..ede6b555d48 100644
--- a/clang/lib/GR/FixedAddressChecker.cpp
+++ b/clang/lib/GR/Checkers/FixedAddressChecker.cpp
diff --git a/clang/lib/GR/GRExprEngineExperimentalChecks.cpp b/clang/lib/GR/Checkers/GRExprEngineExperimentalChecks.cpp
index f1acc65d769..f1acc65d769 100644
--- a/clang/lib/GR/GRExprEngineExperimentalChecks.cpp
+++ b/clang/lib/GR/Checkers/GRExprEngineExperimentalChecks.cpp
diff --git a/clang/lib/GR/GRExprEngineExperimentalChecks.h b/clang/lib/GR/Checkers/GRExprEngineExperimentalChecks.h
index 3380031e020..3380031e020 100644
--- a/clang/lib/GR/GRExprEngineExperimentalChecks.h
+++ b/clang/lib/GR/Checkers/GRExprEngineExperimentalChecks.h
diff --git a/clang/lib/GR/GRExprEngineInternalChecks.h b/clang/lib/GR/Checkers/GRExprEngineInternalChecks.h
index 740a914cfcd..740a914cfcd 100644
--- a/clang/lib/GR/GRExprEngineInternalChecks.h
+++ b/clang/lib/GR/Checkers/GRExprEngineInternalChecks.h
diff --git a/clang/lib/GR/IdempotentOperationChecker.cpp b/clang/lib/GR/Checkers/IdempotentOperationChecker.cpp
index e6f0e5de06f..e6f0e5de06f 100644
--- a/clang/lib/GR/IdempotentOperationChecker.cpp
+++ b/clang/lib/GR/Checkers/IdempotentOperationChecker.cpp
diff --git a/clang/lib/GR/LLVMConventionsChecker.cpp b/clang/lib/GR/Checkers/LLVMConventionsChecker.cpp
index e97074e5425..e97074e5425 100644
--- a/clang/lib/GR/LLVMConventionsChecker.cpp
+++ b/clang/lib/GR/Checkers/LLVMConventionsChecker.cpp
diff --git a/clang/lib/GR/MacOSXAPIChecker.cpp b/clang/lib/GR/Checkers/MacOSXAPIChecker.cpp
index c798cb291f4..c798cb291f4 100644
--- a/clang/lib/GR/MacOSXAPIChecker.cpp
+++ b/clang/lib/GR/Checkers/MacOSXAPIChecker.cpp
diff --git a/clang/lib/GR/Checkers/Makefile b/clang/lib/GR/Checkers/Makefile
new file mode 100644
index 00000000000..b3d213ab073
--- /dev/null
+++ b/clang/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/clang/lib/GR/MallocChecker.cpp b/clang/lib/GR/Checkers/MallocChecker.cpp
index 367ac245c14..367ac245c14 100644
--- a/clang/lib/GR/MallocChecker.cpp
+++ b/clang/lib/GR/Checkers/MallocChecker.cpp
diff --git a/clang/lib/GR/NSAutoreleasePoolChecker.cpp b/clang/lib/GR/Checkers/NSAutoreleasePoolChecker.cpp
index d8225a7e4e7..d8225a7e4e7 100644
--- a/clang/lib/GR/NSAutoreleasePoolChecker.cpp
+++ b/clang/lib/GR/Checkers/NSAutoreleasePoolChecker.cpp
diff --git a/clang/lib/GR/NSErrorChecker.cpp b/clang/lib/GR/Checkers/NSErrorChecker.cpp
index 73caf774bfc..73caf774bfc 100644
--- a/clang/lib/GR/NSErrorChecker.cpp
+++ b/clang/lib/GR/Checkers/NSErrorChecker.cpp
diff --git a/clang/lib/GR/NoReturnFunctionChecker.cpp b/clang/lib/GR/Checkers/NoReturnFunctionChecker.cpp
index fdd2849719f..fdd2849719f 100644
--- a/clang/lib/GR/NoReturnFunctionChecker.cpp
+++ b/clang/lib/GR/Checkers/NoReturnFunctionChecker.cpp
diff --git a/clang/lib/GR/OSAtomicChecker.cpp b/clang/lib/GR/Checkers/OSAtomicChecker.cpp
index 36b5335d88a..36b5335d88a 100644
--- a/clang/lib/GR/OSAtomicChecker.cpp
+++ b/clang/lib/GR/Checkers/OSAtomicChecker.cpp
diff --git a/clang/lib/GR/ObjCAtSyncChecker.cpp b/clang/lib/GR/Checkers/ObjCAtSyncChecker.cpp
index c95df4ef4b9..c95df4ef4b9 100644
--- a/clang/lib/GR/ObjCAtSyncChecker.cpp
+++ b/clang/lib/GR/Checkers/ObjCAtSyncChecker.cpp
diff --git a/clang/lib/GR/ObjCUnusedIVarsChecker.cpp b/clang/lib/GR/Checkers/ObjCUnusedIVarsChecker.cpp
index e3f5d565e72..e3f5d565e72 100644
--- a/clang/lib/GR/ObjCUnusedIVarsChecker.cpp
+++ b/clang/lib/GR/Checkers/ObjCUnusedIVarsChecker.cpp
diff --git a/clang/lib/GR/PointerArithChecker.cpp b/clang/lib/GR/Checkers/PointerArithChecker.cpp
index 0517140da32..0517140da32 100644
--- a/clang/lib/GR/PointerArithChecker.cpp
+++ b/clang/lib/GR/Checkers/PointerArithChecker.cpp
diff --git a/clang/lib/GR/PointerSubChecker.cpp b/clang/lib/GR/Checkers/PointerSubChecker.cpp
index 24f839dca12..24f839dca12 100644
--- a/clang/lib/GR/PointerSubChecker.cpp
+++ b/clang/lib/GR/Checkers/PointerSubChecker.cpp
diff --git a/clang/lib/GR/PthreadLockChecker.cpp b/clang/lib/GR/Checkers/PthreadLockChecker.cpp
index 32f2f57b456..32f2f57b456 100644
--- a/clang/lib/GR/PthreadLockChecker.cpp
+++ b/clang/lib/GR/Checkers/PthreadLockChecker.cpp
diff --git a/clang/lib/GR/ReturnPointerRangeChecker.cpp b/clang/lib/GR/Checkers/ReturnPointerRangeChecker.cpp
index a2a9473b2c2..a2a9473b2c2 100644
--- a/clang/lib/GR/ReturnPointerRangeChecker.cpp
+++ b/clang/lib/GR/Checkers/ReturnPointerRangeChecker.cpp
diff --git a/clang/lib/GR/ReturnUndefChecker.cpp b/clang/lib/GR/Checkers/ReturnUndefChecker.cpp
index f5e417a1f7e..f5e417a1f7e 100644
--- a/clang/lib/GR/ReturnUndefChecker.cpp
+++ b/clang/lib/GR/Checkers/ReturnUndefChecker.cpp
diff --git a/clang/lib/GR/StackAddrLeakChecker.cpp b/clang/lib/GR/Checkers/StackAddrLeakChecker.cpp
index 1852e24fa59..1852e24fa59 100644
--- a/clang/lib/GR/StackAddrLeakChecker.cpp
+++ b/clang/lib/GR/Checkers/StackAddrLeakChecker.cpp
diff --git a/clang/lib/GR/StreamChecker.cpp b/clang/lib/GR/Checkers/StreamChecker.cpp
index dc7bd629332..dc7bd629332 100644
--- a/clang/lib/GR/StreamChecker.cpp
+++ b/clang/lib/GR/Checkers/StreamChecker.cpp
diff --git a/clang/lib/GR/UndefBranchChecker.cpp b/clang/lib/GR/Checkers/UndefBranchChecker.cpp
index ebeb7a429da..ebeb7a429da 100644
--- a/clang/lib/GR/UndefBranchChecker.cpp
+++ b/clang/lib/GR/Checkers/UndefBranchChecker.cpp
diff --git a/clang/lib/GR/UndefCapturedBlockVarChecker.cpp b/clang/lib/GR/Checkers/UndefCapturedBlockVarChecker.cpp
index 78b83944075..78b83944075 100644
--- a/clang/lib/GR/UndefCapturedBlockVarChecker.cpp
+++ b/clang/lib/GR/Checkers/UndefCapturedBlockVarChecker.cpp
diff --git a/clang/lib/GR/UndefResultChecker.cpp b/clang/lib/GR/Checkers/UndefResultChecker.cpp
index df3ad3e9f88..df3ad3e9f88 100644
--- a/clang/lib/GR/UndefResultChecker.cpp
+++ b/clang/lib/GR/Checkers/UndefResultChecker.cpp
diff --git a/clang/lib/GR/UndefinedArraySubscriptChecker.cpp b/clang/lib/GR/Checkers/UndefinedArraySubscriptChecker.cpp
index 8ef3986b8d3..8ef3986b8d3 100644
--- a/clang/lib/GR/UndefinedArraySubscriptChecker.cpp
+++ b/clang/lib/GR/Checkers/UndefinedArraySubscriptChecker.cpp
diff --git a/clang/lib/GR/UndefinedAssignmentChecker.cpp b/clang/lib/GR/Checkers/UndefinedAssignmentChecker.cpp
index 4273f0cf315..4273f0cf315 100644
--- a/clang/lib/GR/UndefinedAssignmentChecker.cpp
+++ b/clang/lib/GR/Checkers/UndefinedAssignmentChecker.cpp
diff --git a/clang/lib/GR/UnixAPIChecker.cpp b/clang/lib/GR/Checkers/UnixAPIChecker.cpp
index 4f1b25f4d85..4f1b25f4d85 100644
--- a/clang/lib/GR/UnixAPIChecker.cpp
+++ b/clang/lib/GR/Checkers/UnixAPIChecker.cpp
diff --git a/clang/lib/GR/UnreachableCodeChecker.cpp b/clang/lib/GR/Checkers/UnreachableCodeChecker.cpp
index 5f8b229ccb3..5f8b229ccb3 100644
--- a/clang/lib/GR/UnreachableCodeChecker.cpp
+++ b/clang/lib/GR/Checkers/UnreachableCodeChecker.cpp
diff --git a/clang/lib/GR/VLASizeChecker.cpp b/clang/lib/GR/Checkers/VLASizeChecker.cpp
index 8c4d903c1a1..8c4d903c1a1 100644
--- a/clang/lib/GR/VLASizeChecker.cpp
+++ b/clang/lib/GR/Checkers/VLASizeChecker.cpp
diff --git a/clang/lib/GR/GRExprEngine.cpp b/clang/lib/GR/GRExprEngine.cpp
index da325929902..8743f71efe3 100644
--- a/clang/lib/GR/GRExprEngine.cpp
+++ b/clang/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/clang/lib/GR/Makefile b/clang/lib/GR/Makefile
index 71066effe4b..3261983107e 100644
--- a/clang/lib/GR/Makefile
+++ b/clang/lib/GR/Makefile
@@ -13,6 +13,7 @@
CLANG_LEVEL := ../..
LIBRARYNAME := clangGRCore
+PARALLEL_DIRS := Checkers
include $(CLANG_LEVEL)/Makefile
OpenPOWER on IntegriCloud