diff options
author | Adrian Prantl <aprantl@apple.com> | 2015-07-07 20:11:29 +0000 |
---|---|---|
committer | Adrian Prantl <aprantl@apple.com> | 2015-07-07 20:11:29 +0000 |
commit | d5b174ab688d6f400079ee2a81e4f42ced59c661 (patch) | |
tree | e30ae87f029abb151b43b5ecb66c3ac2c0ec1da8 /tools/clang-check | |
parent | 4a4b27a329e6f190bbd1b1fb5b4820c9abc5eade (diff) | |
download | clang-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.txt | 2 | ||||
-rw-r--r-- | tools/clang-check/ClangCheck.cpp | 4 | ||||
-rw-r--r-- | tools/clang-check/Makefile | 9 |
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 |