diff options
author | dim <dim@FreeBSD.org> | 2015-09-06 18:36:24 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2015-09-06 18:36:24 +0000 |
commit | 4238dc458ed9a048965af111b979fd51d288f22c (patch) | |
tree | 3d3ed1e1987dbe6444294b1b4e249814b97b97a5 /tools | |
parent | 6416b56f5a3923c6c264b46365e16718ccabf081 (diff) | |
download | FreeBSD-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.cpp | 6 | ||||
-rw-r--r-- | tools/c-index-test/c-index-test.c | 11 | ||||
-rw-r--r-- | tools/clang-check/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tools/clang-check/ClangCheck.cpp | 3 | ||||
-rw-r--r-- | tools/driver/cc1_main.cpp | 8 | ||||
-rw-r--r-- | tools/driver/cc1as_main.cpp | 3 | ||||
-rw-r--r-- | tools/libclang/CIndex.cpp | 8 | ||||
-rw-r--r-- | tools/libclang/CIndexer.h | 2 | ||||
-rw-r--r-- | tools/libclang/CMakeLists.txt | 1 |
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 |