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 | e50371b94800bfde7057c06da4e118a7a2ca283f (patch) | |
tree | 38882b868d3ac5a2a6afb46bdf60aab2e899aed0 /clang/tools/libclang | |
parent | 7b315ea3c3598cf40147ff604be8b52cb222b0f3 (diff) | |
download | bcm5719-llvm-e50371b94800bfde7057c06da4e118a7a2ca283f.tar.gz bcm5719-llvm-e50371b94800bfde7057c06da4e118a7a2ca283f.zip |
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
llvm-svn: 241620
Diffstat (limited to 'clang/tools/libclang')
-rw-r--r-- | clang/tools/libclang/CIndex.cpp | 4 | ||||
-rw-r--r-- | clang/tools/libclang/CMakeLists.txt | 5 | ||||
-rw-r--r-- | clang/tools/libclang/Makefile | 8 |
3 files changed, 13 insertions, 4 deletions
diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp index df0ed2ad65d..a5a9bbbb45f 100644 --- a/clang/tools/libclang/CIndex.cpp +++ b/clang/tools/libclang/CIndex.cpp @@ -29,6 +29,7 @@ #include "clang/Basic/DiagnosticIDs.h" #include "clang/Basic/TargetInfo.h" #include "clang/Basic/Version.h" +#include "clang/CodeGen/ObjectFilePCHContainerOperations.h" #include "clang/Frontend/ASTUnit.h" #include "clang/Frontend/CompilerInstance.h" #include "clang/Frontend/FrontendDiagnostic.h" @@ -2876,7 +2877,8 @@ CXIndex clang_createIndex(int excludeDeclarationsFromPCH, // registered once. (void)*RegisterFatalErrorHandlerOnce; - CIndexer *CIdxr = new CIndexer(); + CIndexer *CIdxr = + new CIndexer(std::make_shared<ObjectFilePCHContainerOperations>()); if (excludeDeclarationsFromPCH) CIdxr->setOnlyLocalDecls(); if (displayDiagnostics) diff --git a/clang/tools/libclang/CMakeLists.txt b/clang/tools/libclang/CMakeLists.txt index 26f88a97c57..407a5c4d4e7 100644 --- a/clang/tools/libclang/CMakeLists.txt +++ b/clang/tools/libclang/CMakeLists.txt @@ -37,9 +37,14 @@ set(SOURCES ../../include/clang-c/Index.h ) +set( LLVM_LINK_COMPONENTS + ${LLVM_TARGETS_TO_BUILD} + ) + set(LIBS clangAST clangBasic + clangCodeGen clangFrontend clangIndex clangLex diff --git a/clang/tools/libclang/Makefile b/clang/tools/libclang/Makefile index 97f663cde47..84914e0f460 100644 --- a/clang/tools/libclang/Makefile +++ b/clang/tools/libclang/Makefile @@ -16,19 +16,21 @@ LINK_LIBS_IN_SHARED = 1 SHARED_LIBRARY = 1 include $(CLANG_LEVEL)/../../Makefile.config -LINK_COMPONENTS := AsmParser BitReader Core MC MCParser Option Support +LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter core \ + instrumentation ipo mc mcparser objcarcopts option support \ + object USEDLIBS = clangIndex.a clangARCMigrate.a \ clangRewriteFrontend.a \ clangFormat.a \ clangTooling.a clangToolingCore.a \ - clangFrontend.a clangDriver.a \ + clangFrontend.a clangCodeGen.a clangDriver.a \ clangSerialization.a \ clangParse.a clangSema.a \ clangStaticAnalyzerCheckers.a clangStaticAnalyzerCore.a \ clangRewrite.a \ clangAnalysis.a clangEdit.a \ clangASTMatchers.a \ - clangAST.a clangLex.a clangBasic.a \ + clangAST.a clangLex.a clangBasic.a include $(CLANG_LEVEL)/Makefile |