summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2015-09-06 18:36:24 +0000
committerdim <dim@FreeBSD.org>2015-09-06 18:36:24 +0000
commit4238dc458ed9a048965af111b979fd51d288f22c (patch)
tree3d3ed1e1987dbe6444294b1b4e249814b97b97a5 /tools
parent6416b56f5a3923c6c264b46365e16718ccabf081 (diff)
downloadFreeBSD-src-4238dc458ed9a048965af111b979fd51d288f22c.zip
FreeBSD-src-4238dc458ed9a048965af111b979fd51d288f22c.tar.gz
Import clang 3.7.0 release (r246257).
Diffstat (limited to 'tools')
-rw-r--r--tools/arcmt-test/arcmt-test.cpp6
-rw-r--r--tools/c-index-test/c-index-test.c11
-rw-r--r--tools/clang-check/CMakeLists.txt1
-rw-r--r--tools/clang-check/ClangCheck.cpp3
-rw-r--r--tools/driver/cc1_main.cpp8
-rw-r--r--tools/driver/cc1as_main.cpp3
-rw-r--r--tools/libclang/CIndex.cpp8
-rw-r--r--tools/libclang/CIndexer.h2
-rw-r--r--tools/libclang/CMakeLists.txt1
9 files changed, 29 insertions, 14 deletions
diff --git a/tools/arcmt-test/arcmt-test.cpp b/tools/arcmt-test/arcmt-test.cpp
index c269e01..7c8e46a 100644
--- a/tools/arcmt-test/arcmt-test.cpp
+++ b/tools/arcmt-test/arcmt-test.cpp
@@ -132,7 +132,7 @@ static bool checkForMigration(StringRef resourcesPath,
return false;
arcmt::checkForManualIssues(CI, CI.getFrontendOpts().Inputs[0],
- std::make_shared<RawPCHContainerOperations>(),
+ std::make_shared<PCHContainerOperations>(),
Diags->getClient());
return Diags->getClient()->getNumErrors() > 0;
}
@@ -171,8 +171,8 @@ static bool performTransformations(StringRef resourcesPath,
if (!origCI.getLangOpts()->ObjC1)
return false;
- MigrationProcess migration(
- origCI, std::make_shared<RawPCHContainerOperations>(), DiagClient);
+ MigrationProcess migration(origCI, std::make_shared<PCHContainerOperations>(),
+ DiagClient);
std::vector<TransformFn>
transforms = arcmt::getAllTransformations(origCI.getLangOpts()->getGC(),
diff --git a/tools/c-index-test/c-index-test.c b/tools/c-index-test/c-index-test.c
index 980f341..eeeb832 100644
--- a/tools/c-index-test/c-index-test.c
+++ b/tools/c-index-test/c-index-test.c
@@ -255,6 +255,17 @@ static int parse_remapped_files_with_try(int try_idx,
if (ret)
return ret;
+ if (num_unsaved_files_no_try_idx == 0) {
+ *unsaved_files = unsaved_files_try_idx;
+ *num_unsaved_files = num_unsaved_files_try_idx;
+ return 0;
+ }
+ if (num_unsaved_files_try_idx == 0) {
+ *unsaved_files = unsaved_files_no_try_idx;
+ *num_unsaved_files = num_unsaved_files_no_try_idx;
+ return 0;
+ }
+
*num_unsaved_files = num_unsaved_files_no_try_idx + num_unsaved_files_try_idx;
*unsaved_files
= (struct CXUnsavedFile *)realloc(unsaved_files_no_try_idx,
diff --git a/tools/clang-check/CMakeLists.txt b/tools/clang-check/CMakeLists.txt
index d1572cb..04151a8 100644
--- a/tools/clang-check/CMakeLists.txt
+++ b/tools/clang-check/CMakeLists.txt
@@ -11,7 +11,6 @@ add_clang_executable(clang-check
target_link_libraries(clang-check
clangAST
clangBasic
- clangCodeGen
clangDriver
clangFrontend
clangRewriteFrontend
diff --git a/tools/clang-check/ClangCheck.cpp b/tools/clang-check/ClangCheck.cpp
index 2682e0f..a9934c9 100644
--- a/tools/clang-check/ClangCheck.cpp
+++ b/tools/clang-check/ClangCheck.cpp
@@ -160,8 +160,7 @@ int main(int argc, const char **argv) {
CommonOptionsParser OptionsParser(argc, argv, ClangCheckCategory);
ClangTool Tool(OptionsParser.getCompilations(),
- OptionsParser.getSourcePathList(),
- std::make_shared<clang::ObjectFilePCHContainerOperations>());
+ OptionsParser.getSourcePathList());
// Clear adjusters because -fsyntax-only is inserted by the default chain.
Tool.clearArgumentsAdjusters();
diff --git a/tools/driver/cc1_main.cpp b/tools/driver/cc1_main.cpp
index 65f845d..8240561 100644
--- a/tools/driver/cc1_main.cpp
+++ b/tools/driver/cc1_main.cpp
@@ -65,10 +65,14 @@ void initializePollyPasses(llvm::PassRegistry &Registry);
#endif
int cc1_main(ArrayRef<const char *> Argv, const char *Argv0, void *MainAddr) {
- std::unique_ptr<CompilerInstance> Clang(new CompilerInstance(
- std::make_shared<ObjectFilePCHContainerOperations>()));
+ std::unique_ptr<CompilerInstance> Clang(new CompilerInstance());
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs());
+ // Register the support for object-file-wrapped Clang modules.
+ auto PCHOps = Clang->getPCHContainerOperations();
+ PCHOps->registerWriter(llvm::make_unique<ObjectFilePCHContainerWriter>());
+ PCHOps->registerReader(llvm::make_unique<ObjectFilePCHContainerReader>());
+
// Initialize targets first, so that --version shows registered targets.
llvm::InitializeAllTargets();
llvm::InitializeAllTargetMCs();
diff --git a/tools/driver/cc1as_main.cpp b/tools/driver/cc1as_main.cpp
index aa92541..fd0fbb4 100644
--- a/tools/driver/cc1as_main.cpp
+++ b/tools/driver/cc1as_main.cpp
@@ -406,6 +406,9 @@ static bool ExecuteAssembler(AssemblerInvocation &Opts,
Failed = Parser->Run(Opts.NoInitialTextSection);
}
+ // Close Streamer first.
+ // It might have a reference to the output stream.
+ Str.reset();
// Close the output stream early.
BOS.reset();
FDOS.reset();
diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp
index 6e48bab..8225a6c 100644
--- a/tools/libclang/CIndex.cpp
+++ b/tools/libclang/CIndex.cpp
@@ -2884,8 +2884,8 @@ CXIndex clang_createIndex(int excludeDeclarationsFromPCH,
llvm::InitializeAllAsmPrinters();
llvm::InitializeAllAsmParsers();
- CIndexer *CIdxr =
- new CIndexer(std::make_shared<ObjectFilePCHContainerOperations>());
+ CIndexer *CIdxr = new CIndexer();
+
if (excludeDeclarationsFromPCH)
CIdxr->setOnlyLocalDecls();
if (displayDiagnostics)
@@ -2954,8 +2954,8 @@ enum CXErrorCode clang_createTranslationUnit2(CXIndex CIdx,
IntrusiveRefCntPtr<DiagnosticsEngine> Diags =
CompilerInstance::createDiagnostics(new DiagnosticOptions());
std::unique_ptr<ASTUnit> AU = ASTUnit::LoadFromASTFile(
- ast_filename, CXXIdx->getPCHContainerOperations(), Diags, FileSystemOpts,
- CXXIdx->getOnlyLocalDecls(), None,
+ ast_filename, CXXIdx->getPCHContainerOperations()->getRawReader(), Diags,
+ FileSystemOpts, CXXIdx->getOnlyLocalDecls(), None,
/*CaptureDiagnostics=*/true,
/*AllowPCHWithCompilerErrors=*/true,
/*UserFilesAreVolatile=*/true);
diff --git a/tools/libclang/CIndexer.h b/tools/libclang/CIndexer.h
index 8a306cd..bf55301 100644
--- a/tools/libclang/CIndexer.h
+++ b/tools/libclang/CIndexer.h
@@ -44,7 +44,7 @@ class CIndexer {
public:
CIndexer(std::shared_ptr<PCHContainerOperations> PCHContainerOps =
- std::make_shared<RawPCHContainerOperations>())
+ std::make_shared<PCHContainerOperations>())
: OnlyLocalDecls(false), DisplayDiagnostics(false),
Options(CXGlobalOpt_None), PCHContainerOps(PCHContainerOps) {}
diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt
index fb29209..06db70e 100644
--- a/tools/libclang/CMakeLists.txt
+++ b/tools/libclang/CMakeLists.txt
@@ -40,7 +40,6 @@ set(SOURCES
set(LIBS
clangAST
clangBasic
- clangCodeGen
clangFrontend
clangIndex
clangLex
OpenPOWER on IntegriCloud