summaryrefslogtreecommitdiff
path: root/tools/clang-check
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2015-07-07 20:11:29 +0000
committerAdrian Prantl <aprantl@apple.com>2015-07-07 20:11:29 +0000
commitd5b174ab688d6f400079ee2a81e4f42ced59c661 (patch)
treee30ae87f029abb151b43b5ecb66c3ac2c0ec1da8 /tools/clang-check
parent4a4b27a329e6f190bbd1b1fb5b4820c9abc5eade (diff)
downloadclang-d5b174ab688d6f400079ee2a81e4f42ced59c661.tar.gz
Wrap clang modules and pch files in an object file container.
This patch adds ObjectFilePCHContainerOperations uses the LLVM backend to put the contents of a PCH into a __clangast section inside a COFF, ELF, or Mach-O object file container. This is done to facilitate module debugging by makeing it possible to store the debug info for the types defined by a module alongside the AST. rdar://problem/20091852 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@241620 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/clang-check')
-rw-r--r--tools/clang-check/CMakeLists.txt2
-rw-r--r--tools/clang-check/ClangCheck.cpp4
-rw-r--r--tools/clang-check/Makefile9
3 files changed, 11 insertions, 4 deletions
diff --git a/tools/clang-check/CMakeLists.txt b/tools/clang-check/CMakeLists.txt
index 8b9cd888c8..11214d4b9c 100644
--- a/tools/clang-check/CMakeLists.txt
+++ b/tools/clang-check/CMakeLists.txt
@@ -1,4 +1,5 @@
set(LLVM_LINK_COMPONENTS
+ ${LLVM_TARGETS_TO_BUILD}
Option
Support
)
@@ -11,6 +12,7 @@ target_link_libraries(clang-check
clangAST
clangBasic
clangDriver
+ clangCodeGen
clangFrontend
clangRewriteFrontend
clangStaticAnalyzerFrontend
diff --git a/tools/clang-check/ClangCheck.cpp b/tools/clang-check/ClangCheck.cpp
index 7992026a7c..a3061f8acc 100644
--- a/tools/clang-check/ClangCheck.cpp
+++ b/tools/clang-check/ClangCheck.cpp
@@ -17,6 +17,7 @@
//===----------------------------------------------------------------------===//
#include "clang/AST/ASTConsumer.h"
+#include "clang/CodeGen/ObjectFilePCHContainerOperations.h"
#include "clang/Driver/Options.h"
#include "clang/Frontend/ASTConsumers.h"
#include "clang/Frontend/CompilerInstance.h"
@@ -151,7 +152,8 @@ int main(int argc, const char **argv) {
llvm::sys::PrintStackTraceOnErrorSignal();
CommonOptionsParser OptionsParser(argc, argv, ClangCheckCategory);
ClangTool Tool(OptionsParser.getCompilations(),
- OptionsParser.getSourcePathList());
+ OptionsParser.getSourcePathList(),
+ std::make_shared<clang::ObjectFilePCHContainerOperations>());
// Clear adjusters because -fsyntax-only is inserted by the default chain.
Tool.clearArgumentsAdjusters();
diff --git a/tools/clang-check/Makefile b/tools/clang-check/Makefile
index e98a131de5..da010ab1f3 100644
--- a/tools/clang-check/Makefile
+++ b/tools/clang-check/Makefile
@@ -15,11 +15,14 @@ TOOLNAME = clang-check
TOOL_NO_EXPORTS = 1
include $(CLANG_LEVEL)/../../Makefile.config
-LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader support mc option
-USEDLIBS = clangFrontend.a clangSerialization.a clangDriver.a \
+LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader ipo objcarcopts \
+ instrumentation bitwriter support mc option
+USEDLIBS = clangFrontend.a clangCodeGen.a clangIndex.a \
+ clangSerialization.a clangDriver.a \
clangTooling.a clangParse.a clangSema.a \
clangStaticAnalyzerFrontend.a clangStaticAnalyzerCheckers.a \
clangStaticAnalyzerCore.a clangAnalysis.a clangRewriteFrontend.a \
- clangRewrite.a clangEdit.a clangAST.a clangLex.a clangBasic.a
+ clangRewrite.a clangEdit.a clangAST.a clangLex.a \
+ clangBasic.a
include $(CLANG_LEVEL)/Makefile