summaryrefslogtreecommitdiffstats
path: root/clang/tools/libclang
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
commite50371b94800bfde7057c06da4e118a7a2ca283f (patch)
tree38882b868d3ac5a2a6afb46bdf60aab2e899aed0 /clang/tools/libclang
parent7b315ea3c3598cf40147ff604be8b52cb222b0f3 (diff)
downloadbcm5719-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.cpp4
-rw-r--r--clang/tools/libclang/CMakeLists.txt5
-rw-r--r--clang/tools/libclang/Makefile8
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
OpenPOWER on IntegriCloud