Author: Sylvestre Ledru Date: 2024-11-21T13:04:30+01:00 New Revision: a1153cd6fedd4c906a9840987934ca4712e34cb2
URL: https://github.com/llvm/llvm-project/commit/a1153cd6fedd4c906a9840987934ca4712e34cb2 DIFF: https://github.com/llvm/llvm-project/commit/a1153cd6fedd4c906a9840987934ca4712e34cb2.diff LOG: Revert "[NFC] Explicitly pass a VFS when creating DiagnosticsEngine (#115852)" Reverted for causing: https://github.com/llvm/llvm-project/issues/117145 This reverts commit bdd10d9d249bd1c2a45e3de56a5accd97e953458. Added: Modified: clang-tools-extra/clang-include-fixer/IncludeFixer.cpp clang-tools-extra/clangd/Compiler.cpp clang-tools-extra/clangd/ModulesBuilder.cpp clang-tools-extra/clangd/Preamble.cpp clang-tools-extra/include-cleaner/unittests/RecordTest.cpp clang/include/clang/Frontend/CompilerInstance.h clang/lib/Frontend/CompilerInstance.cpp clang/lib/Frontend/CreateInvocationFromCommandLine.cpp clang/lib/Frontend/Rewrite/FrontendActions.cpp clang/lib/Interpreter/Interpreter.cpp clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp clang/lib/Testing/TestAST.cpp clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp clang/lib/Tooling/Tooling.cpp clang/tools/c-index-test/core_main.cpp clang/tools/clang-import-test/clang-import-test.cpp clang/tools/clang-installapi/ClangInstallAPI.cpp clang/tools/clang-scan-deps/ClangScanDeps.cpp clang/tools/diagtool/ShowEnabledWarnings.cpp clang/tools/driver/cc1_main.cpp clang/tools/libclang/CIndex.cpp clang/tools/libclang/Indexing.cpp clang/unittests/AST/ExternalASTSourceTest.cpp clang/unittests/CodeGen/TestCompiler.h clang/unittests/Driver/DXCModeTest.cpp clang/unittests/Driver/ToolChainTest.cpp clang/unittests/Frontend/ASTUnitTest.cpp clang/unittests/Frontend/CodeGenActionTest.cpp clang/unittests/Frontend/CompilerInstanceTest.cpp clang/unittests/Frontend/CompilerInvocationTest.cpp clang/unittests/Frontend/FrontendActionTest.cpp clang/unittests/Frontend/OutputStreamTest.cpp clang/unittests/Frontend/PCHPreambleTest.cpp clang/unittests/Frontend/ReparseWorkingDirTest.cpp clang/unittests/Frontend/UtilsTest.cpp clang/unittests/Sema/SemaNoloadLookupTest.cpp clang/unittests/Serialization/ForceCheckFileInputTest.cpp clang/unittests/Serialization/ModuleCacheTest.cpp clang/unittests/Serialization/NoCommentsTest.cpp clang/unittests/Serialization/PreambleInNamedModulesTest.cpp clang/unittests/Serialization/VarDeclConstantInitTest.cpp clang/unittests/Support/TimeProfilerTest.cpp clang/unittests/Tooling/DependencyScanning/DependencyScannerTest.cpp clang/unittests/Tooling/ToolingTest.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clang-include-fixer/IncludeFixer.cpp b/clang-tools-extra/clang-include-fixer/IncludeFixer.cpp index bba8f8acc77da9..354f35cbadbeb9 100644 --- a/clang-tools-extra/clang-include-fixer/IncludeFixer.cpp +++ b/clang-tools-extra/clang-include-fixer/IncludeFixer.cpp @@ -95,8 +95,7 @@ bool IncludeFixerActionFactory::runInvocation( // Create the compiler's actual diagnostics engine. We want to drop all // diagnostics here. - Compiler.createDiagnostics(Files->getVirtualFileSystem(), - new clang::IgnoringDiagConsumer, + Compiler.createDiagnostics(new clang::IgnoringDiagConsumer, /*ShouldOwnClient=*/true); Compiler.createSourceManager(*Files); diff --git a/clang-tools-extra/clangd/Compiler.cpp b/clang-tools-extra/clangd/Compiler.cpp index 161cc9ae0ca365..c60ab8e1b8062a 100644 --- a/clang-tools-extra/clangd/Compiler.cpp +++ b/clang-tools-extra/clangd/Compiler.cpp @@ -110,8 +110,8 @@ buildCompilerInvocation(const ParseInputs &Inputs, clang::DiagnosticConsumer &D, CIOpts.VFS = Inputs.TFS->view(Inputs.CompileCommand.Directory); CIOpts.CC1Args = CC1Args; CIOpts.RecoverOnError = true; - CIOpts.Diags = CompilerInstance::createDiagnostics( - *CIOpts.VFS, new DiagnosticOptions, &D, false); + CIOpts.Diags = + CompilerInstance::createDiagnostics(new DiagnosticOptions, &D, false); CIOpts.ProbePrecompiled = false; std::unique_ptr<CompilerInvocation> CI = createInvocation(ArgStrs, CIOpts); if (!CI) @@ -148,7 +148,7 @@ prepareCompilerInstance(std::unique_ptr<clang::CompilerInvocation> CI, auto Clang = std::make_unique<CompilerInstance>( std::make_shared<PCHContainerOperations>()); Clang->setInvocation(std::move(CI)); - Clang->createDiagnostics(*VFS, &DiagsClient, false); + Clang->createDiagnostics(&DiagsClient, false); if (auto VFSWithRemapping = createVFSFromCompilerInvocation( Clang->getInvocation(), Clang->getDiagnostics(), VFS)) diff --git a/clang-tools-extra/clangd/ModulesBuilder.cpp b/clang-tools-extra/clangd/ModulesBuilder.cpp index 29508901f85bba..2bce3a20825616 100644 --- a/clang-tools-extra/clangd/ModulesBuilder.cpp +++ b/clang-tools-extra/clangd/ModulesBuilder.cpp @@ -188,8 +188,7 @@ bool IsModuleFileUpToDate(PathRef ModuleFilePath, clang::clangd::IgnoreDiagnostics IgnoreDiags; IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*VFS, new DiagnosticOptions, - &IgnoreDiags, + CompilerInstance::createDiagnostics(new DiagnosticOptions, &IgnoreDiags, /*ShouldOwnClient=*/false); LangOptions LangOpts; diff --git a/clang-tools-extra/clangd/Preamble.cpp b/clang-tools-extra/clangd/Preamble.cpp index ce88ec0eb88c1b..c14c4d1ba103f8 100644 --- a/clang-tools-extra/clangd/Preamble.cpp +++ b/clang-tools-extra/clangd/Preamble.cpp @@ -613,9 +613,8 @@ buildPreamble(PathRef FileName, CompilerInvocation CI, for (const auto &L : ASTListeners) L->sawDiagnostic(D, Diag); }); - auto VFS = Inputs.TFS->view(Inputs.CompileCommand.Directory); llvm::IntrusiveRefCntPtr<DiagnosticsEngine> PreambleDiagsEngine = - CompilerInstance::createDiagnostics(*VFS, &CI.getDiagnosticOpts(), + CompilerInstance::createDiagnostics(&CI.getDiagnosticOpts(), &PreambleDiagnostics, /*ShouldOwnClient=*/false); const Config &Cfg = Config::current(); @@ -652,6 +651,7 @@ buildPreamble(PathRef FileName, CompilerInvocation CI, for (const auto &L : ASTListeners) L->beforeExecute(CI); }); + auto VFS = Inputs.TFS->view(Inputs.CompileCommand.Directory); llvm::SmallString<32> AbsFileName(FileName); VFS->makeAbsolute(AbsFileName); auto StatCache = std::make_shared<PreambleFileStatusCache>(AbsFileName); diff --git a/clang-tools-extra/include-cleaner/unittests/RecordTest.cpp b/clang-tools-extra/include-cleaner/unittests/RecordTest.cpp index b1bbb2eb82414c..b5a7b9720903eb 100644 --- a/clang-tools-extra/include-cleaner/unittests/RecordTest.cpp +++ b/clang-tools-extra/include-cleaner/unittests/RecordTest.cpp @@ -609,24 +609,23 @@ TEST_F(PragmaIncludeTest, ExportInUnnamedBuffer) { )cpp"; Inputs.ExtraFiles["foo.h"] = ""; - // Create unnamed memory buffers for all the files. - auto VFS = llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>(); - VFS->addFile(Filename, /*ModificationTime=*/0, - llvm::MemoryBuffer::getMemBufferCopy(Code, /*BufferName=*/"")); - for (const auto &Extra : Inputs.ExtraFiles) - VFS->addFile(Extra.getKey(), /*ModificationTime=*/0, - llvm::MemoryBuffer::getMemBufferCopy(Extra.getValue(), - /*BufferName=*/"")); - auto Clang = std::make_unique<CompilerInstance>( std::make_shared<PCHContainerOperations>()); - Clang->createDiagnostics(*VFS); + Clang->createDiagnostics(); Clang->setInvocation(std::make_unique<CompilerInvocation>()); ASSERT_TRUE(CompilerInvocation::CreateFromArgs( Clang->getInvocation(), {Filename.data()}, Clang->getDiagnostics(), "clang")); + // Create unnamed memory buffers for all the files. + auto VFS = llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>(); + VFS->addFile(Filename, /*ModificationTime=*/0, + llvm::MemoryBuffer::getMemBufferCopy(Code, /*BufferName=*/"")); + for (const auto &Extra : Inputs.ExtraFiles) + VFS->addFile(Extra.getKey(), /*ModificationTime=*/0, + llvm::MemoryBuffer::getMemBufferCopy(Extra.getValue(), + /*BufferName=*/"")); auto *FM = Clang->createFileManager(VFS); ASSERT_TRUE(Clang->ExecuteAction(*Inputs.MakeAction())); EXPECT_THAT( diff --git a/clang/include/clang/Frontend/CompilerInstance.h b/clang/include/clang/Frontend/CompilerInstance.h index 1220a4e29471d1..338eb3c6bd028d 100644 --- a/clang/include/clang/Frontend/CompilerInstance.h +++ b/clang/include/clang/Frontend/CompilerInstance.h @@ -675,17 +675,13 @@ class CompilerInstance : public ModuleLoader { /// Note that this routine also replaces the diagnostic client, /// allocating one if one is not provided. /// - /// \param VFS is used for any IO needed when creating DiagnosticsEngine. It - /// doesn't replace VFS in the CompilerInstance (if any). - /// /// \param Client If non-NULL, a diagnostic client that will be /// attached to (and, then, owned by) the DiagnosticsEngine inside this AST /// unit. /// /// \param ShouldOwnClient If Client is non-NULL, specifies whether /// the diagnostic object should take ownership of the client. - void createDiagnostics(llvm::vfs::FileSystem &VFS, - DiagnosticConsumer *Client = nullptr, + void createDiagnostics(DiagnosticConsumer *Client = nullptr, bool ShouldOwnClient = true); /// Create a DiagnosticsEngine object with a the TextDiagnosticPrinter. @@ -706,11 +702,10 @@ class CompilerInstance : public ModuleLoader { /// used by some diagnostics printers (for logging purposes only). /// /// \return The new object on success, or null on failure. - static IntrusiveRefCntPtr<DiagnosticsEngine> - createDiagnostics(llvm::vfs::FileSystem &VFS, DiagnosticOptions *Opts, - DiagnosticConsumer *Client = nullptr, - bool ShouldOwnClient = true, - const CodeGenOptions *CodeGenOpts = nullptr); + static IntrusiveRefCntPtr<DiagnosticsEngine> createDiagnostics( + DiagnosticOptions *Opts, DiagnosticConsumer *Client = nullptr, + bool ShouldOwnClient = true, const CodeGenOptions *CodeGenOpts = nullptr, + IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS = nullptr); /// Create the file manager and replace any existing one with it. /// diff --git a/clang/lib/Frontend/CompilerInstance.cpp b/clang/lib/Frontend/CompilerInstance.cpp index fbfc305ca06a04..ecc6782c7cb4fb 100644 --- a/clang/lib/Frontend/CompilerInstance.cpp +++ b/clang/lib/Frontend/CompilerInstance.cpp @@ -332,20 +332,23 @@ static void SetupSerializedDiagnostics(DiagnosticOptions *DiagOpts, } } -void CompilerInstance::createDiagnostics(llvm::vfs::FileSystem &VFS, - DiagnosticConsumer *Client, +void CompilerInstance::createDiagnostics(DiagnosticConsumer *Client, bool ShouldOwnClient) { - Diagnostics = createDiagnostics(VFS, &getDiagnosticOpts(), Client, - ShouldOwnClient, &getCodeGenOpts()); + Diagnostics = createDiagnostics( + &getDiagnosticOpts(), Client, ShouldOwnClient, &getCodeGenOpts(), + FileMgr ? FileMgr->getVirtualFileSystemPtr() : nullptr); } IntrusiveRefCntPtr<DiagnosticsEngine> CompilerInstance::createDiagnostics( - llvm::vfs::FileSystem &VFS, DiagnosticOptions *Opts, - DiagnosticConsumer *Client, bool ShouldOwnClient, - const CodeGenOptions *CodeGenOpts) { + DiagnosticOptions *Opts, DiagnosticConsumer *Client, bool ShouldOwnClient, + const CodeGenOptions *CodeGenOpts, + llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS) { IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); - IntrusiveRefCntPtr<DiagnosticsEngine> Diags( - new DiagnosticsEngine(DiagID, Opts)); + IntrusiveRefCntPtr<DiagnosticsEngine> + Diags(new DiagnosticsEngine(DiagID, Opts)); + + if (!VFS) + VFS = llvm::vfs::getRealFileSystem(); // Create the diagnostic client for reporting errors or for // implementing -verify. @@ -369,7 +372,7 @@ IntrusiveRefCntPtr<DiagnosticsEngine> CompilerInstance::createDiagnostics( Opts->DiagnosticSerializationFile); // Configure our handling of diagnostics. - ProcessWarningOptions(*Diags, *Opts, VFS); + ProcessWarningOptions(*Diags, *Opts, *VFS); return Diags; } @@ -1237,10 +1240,9 @@ compileModuleImpl(CompilerInstance &ImportingInstance, SourceLocation ImportLoc, auto &Inv = *Invocation; Instance.setInvocation(std::move(Invocation)); - Instance.createDiagnostics( - ImportingInstance.getVirtualFileSystem(), - new ForwardingDiagnosticConsumer(ImportingInstance.getDiagnosticClient()), - /*ShouldOwnClient=*/true); + Instance.createDiagnostics(new ForwardingDiagnosticConsumer( + ImportingInstance.getDiagnosticClient()), + /*ShouldOwnClient=*/true); if (llvm::is_contained(DiagOpts.SystemHeaderWarningsModules, ModuleName)) Instance.getDiagnostics().setSuppressSystemWarnings(false); diff --git a/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp b/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp index d0b855fff2534c..638757a2450240 100644 --- a/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp +++ b/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp @@ -22,7 +22,6 @@ #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/StringRef.h" #include "llvm/Option/ArgList.h" -#include "llvm/Support/VirtualFileSystem.h" #include "llvm/TargetParser/Host.h" using namespace clang; using namespace llvm::opt; @@ -33,9 +32,7 @@ clang::createInvocation(ArrayRef<const char *> ArgList, assert(!ArgList.empty()); auto Diags = Opts.Diags ? std::move(Opts.Diags) - : CompilerInstance::createDiagnostics( - Opts.VFS ? *Opts.VFS : *llvm::vfs::getRealFileSystem(), - new DiagnosticOptions); + : CompilerInstance::createDiagnostics(new DiagnosticOptions); SmallVector<const char *, 16> Args(ArgList); diff --git a/clang/lib/Frontend/Rewrite/FrontendActions.cpp b/clang/lib/Frontend/Rewrite/FrontendActions.cpp index 5d2e1d78770959..6e1f949f543a51 100644 --- a/clang/lib/Frontend/Rewrite/FrontendActions.cpp +++ b/clang/lib/Frontend/Rewrite/FrontendActions.cpp @@ -247,7 +247,6 @@ class RewriteIncludesAction::RewriteImportsListener : public ASTReaderListener { Instance.setInvocation( std::make_shared<CompilerInvocation>(CI.getInvocation())); Instance.createDiagnostics( - CI.getVirtualFileSystem(), new ForwardingDiagnosticConsumer(CI.getDiagnosticClient()), /*ShouldOwnClient=*/true); Instance.getFrontendOpts().DisableFree = false; diff --git a/clang/lib/Interpreter/Interpreter.cpp b/clang/lib/Interpreter/Interpreter.cpp index 5dc67f6375098f..94f0156ec151fb 100644 --- a/clang/lib/Interpreter/Interpreter.cpp +++ b/clang/lib/Interpreter/Interpreter.cpp @@ -15,7 +15,6 @@ #include "IncrementalExecutor.h" #include "IncrementalParser.h" #include "InterpreterUtils.h" -#include "llvm/Support/VirtualFileSystem.h" #ifdef __EMSCRIPTEN__ #include "Wasm.h" #endif // __EMSCRIPTEN__ @@ -107,7 +106,7 @@ CreateCI(const llvm::opt::ArgStringList &Argv) { CompilerInvocation::GetResourcesPath(Argv[0], nullptr); // Create the actual diagnostics engine. - Clang->createDiagnostics(*llvm::vfs::getRealFileSystem()); + Clang->createDiagnostics(); if (!Clang->hasDiagnostics()) return llvm::createStringError(llvm::errc::not_supported, "Initialization failed. " diff --git a/clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp b/clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp index 168c73df393ffa..ae11fbbe32b762 100644 --- a/clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp +++ b/clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp @@ -78,7 +78,6 @@ void ModelInjector::onBodySynthesis(const NamedDecl *D) { CompilerInstance Instance(CI.getPCHContainerOperations()); Instance.setInvocation(std::move(Invocation)); Instance.createDiagnostics( - CI.getVirtualFileSystem(), new ForwardingDiagnosticConsumer(CI.getDiagnosticClient()), /*ShouldOwnClient=*/true); diff --git a/clang/lib/Testing/TestAST.cpp b/clang/lib/Testing/TestAST.cpp index f7348aa068c51b..fe8b93851613dd 100644 --- a/clang/lib/Testing/TestAST.cpp +++ b/clang/lib/Testing/TestAST.cpp @@ -55,7 +55,7 @@ class StoreDiagnostics : public DiagnosticConsumer { // Provides "empty" ASTContext etc if we fail before parsing gets started. void createMissingComponents(CompilerInstance &Clang) { if (!Clang.hasDiagnostics()) - Clang.createDiagnostics(*llvm::vfs::getRealFileSystem()); + Clang.createDiagnostics(); if (!Clang.hasFileManager()) Clang.createFileManager(); if (!Clang.hasSourceManager()) @@ -82,24 +82,9 @@ TestAST::TestAST(const TestInputs &In) { auto RecoverFromEarlyExit = llvm::make_scope_exit([&] { createMissingComponents(*Clang); }); - std::string Filename = In.FileName; - if (Filename.empty()) - Filename = getFilenameForTesting(In.Language).str(); - - // Set up a VFS with only the virtual file visible. - auto VFS = llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>(); - if (auto Err = VFS->setCurrentWorkingDirectory(In.WorkingDir)) - ADD_FAILURE() << "Failed to setWD: " << Err.message(); - VFS->addFile(Filename, /*ModificationTime=*/0, - llvm::MemoryBuffer::getMemBufferCopy(In.Code, Filename)); - for (const auto &Extra : In.ExtraFiles) - VFS->addFile( - Extra.getKey(), /*ModificationTime=*/0, - llvm::MemoryBuffer::getMemBufferCopy(Extra.getValue(), Extra.getKey())); - // Extra error conditions are reported through diagnostics, set that up first. bool ErrorOK = In.ErrorOK || llvm::StringRef(In.Code).contains("error-ok"); - Clang->createDiagnostics(*VFS, new StoreDiagnostics(Diagnostics, !ErrorOK)); + Clang->createDiagnostics(new StoreDiagnostics(Diagnostics, !ErrorOK)); // Parse cc1 argv, (typically [-std=c++20 input.cc]) into CompilerInvocation. std::vector<const char *> Argv; @@ -108,6 +93,9 @@ TestAST::TestAST(const TestInputs &In) { Argv.push_back(S.c_str()); for (const auto &S : In.ExtraArgs) Argv.push_back(S.c_str()); + std::string Filename = In.FileName; + if (Filename.empty()) + Filename = getFilenameForTesting(In.Language).str(); Argv.push_back(Filename.c_str()); Clang->setInvocation(std::make_unique<CompilerInvocation>()); if (!CompilerInvocation::CreateFromArgs(Clang->getInvocation(), Argv, @@ -117,6 +105,16 @@ TestAST::TestAST(const TestInputs &In) { } assert(!Clang->getInvocation().getFrontendOpts().DisableFree); + // Set up a VFS with only the virtual file visible. + auto VFS = llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>(); + if (auto Err = VFS->setCurrentWorkingDirectory(In.WorkingDir)) + ADD_FAILURE() << "Failed to setWD: " << Err.message(); + VFS->addFile(Filename, /*ModificationTime=*/0, + llvm::MemoryBuffer::getMemBufferCopy(In.Code, Filename)); + for (const auto &Extra : In.ExtraFiles) + VFS->addFile( + Extra.getKey(), /*ModificationTime=*/0, + llvm::MemoryBuffer::getMemBufferCopy(Extra.getValue(), Extra.getKey())); Clang->createFileManager(VFS); // Running the FrontendAction creates the other components: SourceManager, diff --git a/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp b/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp index 5a648df05e4fd3..fd1b7af0600da7 100644 --- a/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp +++ b/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp @@ -322,8 +322,7 @@ class DependencyScanningAction : public tooling::ToolAction { // Create the compiler's actual diagnostics engine. sanitizeDiagOpts(ScanInstance.getDiagnosticOpts()); - ScanInstance.createDiagnostics(DriverFileMgr->getVirtualFileSystem(), - DiagConsumer, /*ShouldOwnClient=*/false); + ScanInstance.createDiagnostics(DiagConsumer, /*ShouldOwnClient=*/false); if (!ScanInstance.hasDiagnostics()) return false; @@ -651,7 +650,7 @@ bool DependencyScanningWorker::computeDependencies( auto DiagOpts = CreateAndPopulateDiagOpts(FinalCCommandLine); sanitizeDiagOpts(*DiagOpts); IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*FinalFS, DiagOpts.release(), &DC, + CompilerInstance::createDiagnostics(DiagOpts.release(), &DC, /*ShouldOwnClient=*/false); // Although `Diagnostics` are used only for command-line parsing, the diff --git a/clang/lib/Tooling/Tooling.cpp b/clang/lib/Tooling/Tooling.cpp index 88b7349ce8fed6..ffacf9cf1f7829 100644 --- a/clang/lib/Tooling/Tooling.cpp +++ b/clang/lib/Tooling/Tooling.cpp @@ -387,8 +387,7 @@ bool ToolInvocation::run() { TextDiagnosticPrinter DiagnosticPrinter(llvm::errs(), DiagOpts); IntrusiveRefCntPtr<DiagnosticsEngine> Diagnostics = CompilerInstance::createDiagnostics( - Files->getVirtualFileSystem(), &*DiagOpts, - DiagConsumer ? DiagConsumer : &DiagnosticPrinter, false); + &*DiagOpts, DiagConsumer ? DiagConsumer : &DiagnosticPrinter, false); // Although `Diagnostics` are used only for command-line parsing, the custom // `DiagConsumer` might expect a `SourceManager` to be present. SourceManager SrcMgr(*Diagnostics, *Files); @@ -457,8 +456,7 @@ bool FrontendActionFactory::runInvocation( std::unique_ptr<FrontendAction> ScopedToolAction(create()); // Create the compiler's actual diagnostics engine. - Compiler.createDiagnostics(Files->getVirtualFileSystem(), DiagConsumer, - /*ShouldOwnClient=*/false); + Compiler.createDiagnostics(DiagConsumer, /*ShouldOwnClient=*/false); if (!Compiler.hasDiagnostics()) return false; @@ -654,8 +652,7 @@ class ASTBuilderAction : public ToolAction { DiagnosticConsumer *DiagConsumer) override { std::unique_ptr<ASTUnit> AST = ASTUnit::LoadFromCompilerInvocation( Invocation, std::move(PCHContainerOps), - CompilerInstance::createDiagnostics(Files->getVirtualFileSystem(), - &Invocation->getDiagnosticOpts(), + CompilerInstance::createDiagnostics(&Invocation->getDiagnosticOpts(), DiagConsumer, /*ShouldOwnClient=*/false), Files); diff --git a/clang/tools/c-index-test/core_main.cpp b/clang/tools/c-index-test/core_main.cpp index 327a77a09408ba..c43bff21962118 100644 --- a/clang/tools/c-index-test/core_main.cpp +++ b/clang/tools/c-index-test/core_main.cpp @@ -25,7 +25,6 @@ #include "llvm/Support/Program.h" #include "llvm/Support/Signals.h" #include "llvm/Support/StringSaver.h" -#include "llvm/Support/VirtualFileSystem.h" #include "llvm/Support/raw_ostream.h" using namespace clang; @@ -220,9 +219,8 @@ static bool printSourceSymbols(const char *Executable, SmallVector<const char *, 4> ArgsWithProgName; ArgsWithProgName.push_back(Executable); ArgsWithProgName.append(Args.begin(), Args.end()); - IntrusiveRefCntPtr<DiagnosticsEngine> Diags( - CompilerInstance::createDiagnostics(*llvm::vfs::getRealFileSystem(), - new DiagnosticOptions)); + IntrusiveRefCntPtr<DiagnosticsEngine> + Diags(CompilerInstance::createDiagnostics(new DiagnosticOptions)); CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; CIOpts.ProbePrecompiled = true; // FIXME: historical default. Needed? @@ -275,8 +273,7 @@ static bool printSourceSymbolsFromModule(StringRef modulePath, auto HSOpts = std::make_shared<HeaderSearchOptions>(); IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*llvm::vfs::getRealFileSystem(), - new DiagnosticOptions()); + CompilerInstance::createDiagnostics(new DiagnosticOptions()); std::unique_ptr<ASTUnit> AU = ASTUnit::LoadFromASTFile(modulePath, *pchRdr, ASTUnit::LoadASTOnly, Diags, FileSystemOpts, HSOpts, /*LangOpts=*/nullptr, diff --git a/clang/tools/clang-import-test/clang-import-test.cpp b/clang/tools/clang-import-test/clang-import-test.cpp index 41a8a63a2e22be..2473e16a546dc0 100644 --- a/clang/tools/clang-import-test/clang-import-test.cpp +++ b/clang/tools/clang-import-test/clang-import-test.cpp @@ -31,7 +31,6 @@ #include "llvm/Support/CommandLine.h" #include "llvm/Support/Error.h" #include "llvm/Support/Signals.h" -#include "llvm/Support/VirtualFileSystem.h" #include "llvm/TargetParser/Host.h" #include <memory> @@ -165,8 +164,7 @@ std::unique_ptr<CompilerInstance> BuildCompilerInstance() { auto Ins = std::make_unique<CompilerInstance>(); auto DC = std::make_unique<TestDiagnosticConsumer>(); const bool ShouldOwnClient = true; - Ins->createDiagnostics(*llvm::vfs::getRealFileSystem(), DC.release(), - ShouldOwnClient); + Ins->createDiagnostics(DC.release(), ShouldOwnClient); auto Inv = std::make_unique<CompilerInvocation>(); diff --git a/clang/tools/clang-installapi/ClangInstallAPI.cpp b/clang/tools/clang-installapi/ClangInstallAPI.cpp index ce6240b1b56f1e..308e5285e32578 100644 --- a/clang/tools/clang-installapi/ClangInstallAPI.cpp +++ b/clang/tools/clang-installapi/ClangInstallAPI.cpp @@ -113,7 +113,7 @@ static bool run(ArrayRef<const char *> Args, const char *ProgName) { // Set up compilation. std::unique_ptr<CompilerInstance> CI(new CompilerInstance()); CI->setFileManager(FM.get()); - CI->createDiagnostics(FM->getVirtualFileSystem()); + CI->createDiagnostics(); if (!CI->hasDiagnostics()) return EXIT_FAILURE; diff --git a/clang/tools/clang-scan-deps/ClangScanDeps.cpp b/clang/tools/clang-scan-deps/ClangScanDeps.cpp index 58b56dcfd3bece..9b30799c3ab263 100644 --- a/clang/tools/clang-scan-deps/ClangScanDeps.cpp +++ b/clang/tools/clang-scan-deps/ClangScanDeps.cpp @@ -29,7 +29,6 @@ #include "llvm/Support/ThreadPool.h" #include "llvm/Support/Threading.h" #include "llvm/Support/Timer.h" -#include "llvm/Support/VirtualFileSystem.h" #include "llvm/TargetParser/Host.h" #include <mutex> #include <optional> @@ -425,8 +424,7 @@ class FullDeps { IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions{}; TextDiagnosticPrinter DiagConsumer(ErrOS, &*DiagOpts); IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*llvm::vfs::getRealFileSystem(), - &*DiagOpts, &DiagConsumer, + CompilerInstance::createDiagnostics(&*DiagOpts, &DiagConsumer, /*ShouldOwnClient=*/false); for (auto &&M : Modules) @@ -741,8 +739,7 @@ getCompilationDatabase(int argc, char **argv, std::string &ErrorMessage) { tooling::JSONCommandLineSyntax::AutoDetect); llvm::IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*llvm::vfs::getRealFileSystem(), - new DiagnosticOptions); + CompilerInstance::createDiagnostics(new DiagnosticOptions); driver::Driver TheDriver(CommandLine[0], llvm::sys::getDefaultTargetTriple(), *Diags); TheDriver.setCheckInputsExist(false); diff --git a/clang/tools/diagtool/ShowEnabledWarnings.cpp b/clang/tools/diagtool/ShowEnabledWarnings.cpp index 48bed7c828c16b..66a295db054c35 100644 --- a/clang/tools/diagtool/ShowEnabledWarnings.cpp +++ b/clang/tools/diagtool/ShowEnabledWarnings.cpp @@ -14,7 +14,6 @@ #include "clang/Frontend/TextDiagnosticPrinter.h" #include "clang/Frontend/Utils.h" #include "llvm/Support/TargetSelect.h" -#include "llvm/Support/VirtualFileSystem.h" DEF_DIAGTOOL("show-enabled", "Show which warnings are enabled for a given command line", @@ -75,8 +74,7 @@ createDiagnostics(unsigned int argc, char **argv) { // Build the diagnostics parser IntrusiveRefCntPtr<DiagnosticsEngine> FinalDiags = - CompilerInstance::createDiagnostics(*llvm::vfs::getRealFileSystem(), - &Invocation->getDiagnosticOpts()); + CompilerInstance::createDiagnostics(&Invocation->getDiagnosticOpts()); if (!FinalDiags) return nullptr; diff --git a/clang/tools/driver/cc1_main.cpp b/clang/tools/driver/cc1_main.cpp index d14058ff2c723d..554dc956c7cfe3 100644 --- a/clang/tools/driver/cc1_main.cpp +++ b/clang/tools/driver/cc1_main.cpp @@ -45,7 +45,6 @@ #include "llvm/Support/TargetSelect.h" #include "llvm/Support/TimeProfiler.h" #include "llvm/Support/Timer.h" -#include "llvm/Support/VirtualFileSystem.h" #include "llvm/Support/raw_ostream.h" #include "llvm/Target/TargetMachine.h" #include "llvm/TargetParser/AArch64TargetParser.h" @@ -265,7 +264,7 @@ int cc1_main(ArrayRef<const char *> Argv, const char *Argv0, void *MainAddr) { CompilerInvocation::GetResourcesPath(Argv0, MainAddr); // Create the actual diagnostics engine. - Clang->createDiagnostics(*llvm::vfs::getRealFileSystem()); + Clang->createDiagnostics(); if (!Clang->hasDiagnostics()) return 1; diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp index def4524449355a..cec6f026fccfd8 100644 --- a/clang/tools/libclang/CIndex.cpp +++ b/clang/tools/libclang/CIndex.cpp @@ -59,7 +59,6 @@ #include "llvm/Support/TargetSelect.h" #include "llvm/Support/Threading.h" #include "llvm/Support/Timer.h" -#include "llvm/Support/VirtualFileSystem.h" #include "llvm/Support/raw_ostream.h" #include "llvm/Support/thread.h" #include <mutex> @@ -4093,8 +4092,7 @@ enum CXErrorCode clang_createTranslationUnit2(CXIndex CIdx, auto HSOpts = std::make_shared<HeaderSearchOptions>(); IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*llvm::vfs::getRealFileSystem(), - new DiagnosticOptions()); + CompilerInstance::createDiagnostics(new DiagnosticOptions()); std::unique_ptr<ASTUnit> AU = ASTUnit::LoadFromASTFile( ast_filename, CXXIdx->getPCHContainerOperations()->getRawReader(), ASTUnit::LoadEverything, Diags, FileSystemOpts, HSOpts, @@ -4167,8 +4165,7 @@ clang_parseTranslationUnit_Impl(CXIndex CIdx, const char *source_filename, std::unique_ptr<DiagnosticOptions> DiagOpts = CreateAndPopulateDiagOpts( llvm::ArrayRef(command_line_args, num_command_line_args)); IntrusiveRefCntPtr<DiagnosticsEngine> Diags( - CompilerInstance::createDiagnostics(*llvm::vfs::getRealFileSystem(), - DiagOpts.release())); + CompilerInstance::createDiagnostics(DiagOpts.release())); if (options & CXTranslationUnit_KeepGoing) Diags->setFatalsAsError(true); diff --git a/clang/tools/libclang/Indexing.cpp b/clang/tools/libclang/Indexing.cpp index b890921972a0a7..05d88452209fb3 100644 --- a/clang/tools/libclang/Indexing.cpp +++ b/clang/tools/libclang/Indexing.cpp @@ -29,7 +29,6 @@ #include "clang/Lex/PreprocessorOptions.h" #include "llvm/Support/CrashRecoveryContext.h" #include "llvm/Support/MemoryBuffer.h" -#include "llvm/Support/VirtualFileSystem.h" #include <cstdio> #include <mutex> #include <utility> @@ -480,10 +479,10 @@ static CXErrorCode clang_indexSourceFile_Impl( CaptureDiag = new CaptureDiagnosticConsumer(); // Configure the diagnostics. - IntrusiveRefCntPtr<DiagnosticsEngine> Diags( - CompilerInstance::createDiagnostics(*llvm::vfs::getRealFileSystem(), - new DiagnosticOptions, CaptureDiag, - /*ShouldOwnClient=*/true)); + IntrusiveRefCntPtr<DiagnosticsEngine> + Diags(CompilerInstance::createDiagnostics(new DiagnosticOptions, + CaptureDiag, + /*ShouldOwnClient=*/true)); // Recover resources if we crash before exiting this function. llvm::CrashRecoveryContextCleanupRegistrar<DiagnosticsEngine, diff --git a/clang/unittests/AST/ExternalASTSourceTest.cpp b/clang/unittests/AST/ExternalASTSourceTest.cpp index 8e1bde1247f660..8b70be664e043c 100644 --- a/clang/unittests/AST/ExternalASTSourceTest.cpp +++ b/clang/unittests/AST/ExternalASTSourceTest.cpp @@ -10,14 +10,13 @@ // //===----------------------------------------------------------------------===// -#include "clang/AST/ExternalASTSource.h" #include "clang/AST/ASTConsumer.h" #include "clang/AST/ASTContext.h" +#include "clang/AST/ExternalASTSource.h" #include "clang/Frontend/CompilerInstance.h" #include "clang/Frontend/CompilerInvocation.h" #include "clang/Frontend/FrontendActions.h" #include "clang/Lex/PreprocessorOptions.h" -#include "llvm/Support/VirtualFileSystem.h" #include "gtest/gtest.h" using namespace clang; @@ -47,7 +46,7 @@ class TestFrontendAction : public ASTFrontendAction { bool testExternalASTSource(ExternalASTSource *Source, StringRef FileContents) { CompilerInstance Compiler; - Compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); + Compiler.createDiagnostics(); auto Invocation = std::make_shared<CompilerInvocation>(); Invocation->getPreprocessorOpts().addRemappedFile( diff --git a/clang/unittests/CodeGen/TestCompiler.h b/clang/unittests/CodeGen/TestCompiler.h index 931c75effbf754..891489cb511a4f 100644 --- a/clang/unittests/CodeGen/TestCompiler.h +++ b/clang/unittests/CodeGen/TestCompiler.h @@ -20,7 +20,6 @@ #include "llvm/IR/Constants.h" #include "llvm/IR/LLVMContext.h" #include "llvm/IR/Module.h" -#include "llvm/Support/VirtualFileSystem.h" #include "llvm/TargetParser/Host.h" namespace llvm { @@ -36,7 +35,7 @@ struct TestCompiler { clang::CodeGenOptions CGO = clang::CodeGenOptions()) { compiler.getLangOpts() = LO; compiler.getCodeGenOpts() = CGO; - compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); + compiler.createDiagnostics(); std::string TrStr = llvm::Triple::normalize(llvm::sys::getProcessTriple()); llvm::Triple Tr(TrStr); diff --git a/clang/unittests/Driver/DXCModeTest.cpp b/clang/unittests/Driver/DXCModeTest.cpp index 616c07c0d389d1..2a079a62f1bc13 100644 --- a/clang/unittests/Driver/DXCModeTest.cpp +++ b/clang/unittests/Driver/DXCModeTest.cpp @@ -219,8 +219,7 @@ TEST(DxcModeTest, DefaultEntry) { const char *Args[] = {"clang", "--driver-mode=dxc", "-Tcs_6_7", "foo.hlsl"}; IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*InMemoryFileSystem, - new DiagnosticOptions()); + CompilerInstance::createDiagnostics(new DiagnosticOptions()); CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; diff --git a/clang/unittests/Driver/ToolChainTest.cpp b/clang/unittests/Driver/ToolChainTest.cpp index 0787e7d2d33391..8542a168f93c27 100644 --- a/clang/unittests/Driver/ToolChainTest.cpp +++ b/clang/unittests/Driver/ToolChainTest.cpp @@ -577,7 +577,7 @@ TEST(CompilerInvocation, SplitSwarfSingleCrash) { TEST(ToolChainTest, UEFICallingConventionTest) { clang::CompilerInstance compiler; - compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); + compiler.createDiagnostics(); std::string TrStr = "x86_64-unknown-uefi"; llvm::Triple Tr(TrStr); diff --git a/clang/unittests/Frontend/ASTUnitTest.cpp b/clang/unittests/Frontend/ASTUnitTest.cpp index e6524a019871dc..bd5d5d00981807 100644 --- a/clang/unittests/Frontend/ASTUnitTest.cpp +++ b/clang/unittests/Frontend/ASTUnitTest.cpp @@ -17,7 +17,6 @@ #include "llvm/Support/FileSystem.h" #include "llvm/Support/Path.h" #include "llvm/Support/ToolOutputFile.h" -#include "llvm/Support/VirtualFileSystem.h" #include "gtest/gtest.h" using namespace llvm; @@ -42,18 +41,17 @@ class ASTUnitTest : public ::testing::Test { const char *Args[] = {"clang", "-xc++", InputFileName.c_str()}; - auto VFS = llvm::vfs::getRealFileSystem(); - Diags = CompilerInstance::createDiagnostics(*VFS, new DiagnosticOptions()); + Diags = CompilerInstance::createDiagnostics(new DiagnosticOptions()); CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; - CIOpts.VFS = VFS; CInvok = createInvocation(Args, std::move(CIOpts)); if (!CInvok) return nullptr; - FileManager *FileMgr = new FileManager(FileSystemOptions(), VFS); + FileManager *FileMgr = + new FileManager(FileSystemOptions(), vfs::getRealFileSystem()); PCHContainerOps = std::make_shared<PCHContainerOperations>(); return ASTUnit::LoadFromCompilerInvocation( @@ -136,8 +134,7 @@ TEST_F(ASTUnitTest, ModuleTextualHeader) { const char *Args[] = {"clang", "test.cpp", "-fmodule-map-file=m.modulemap", "-fmodule-name=M"}; - Diags = - CompilerInstance::createDiagnostics(*InMemoryFs, new DiagnosticOptions()); + Diags = CompilerInstance::createDiagnostics(new DiagnosticOptions()); CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; CInvok = createInvocation(Args, std::move(CIOpts)); @@ -165,8 +162,7 @@ TEST_F(ASTUnitTest, LoadFromCommandLineEarlyError) { const char *Args[] = {"clang", "-target", "foobar", InputFileName.c_str()}; - auto Diags = CompilerInstance::createDiagnostics( - *llvm::vfs::getRealFileSystem(), new DiagnosticOptions()); + auto Diags = CompilerInstance::createDiagnostics(new DiagnosticOptions()); auto PCHContainerOps = std::make_shared<PCHContainerOperations>(); std::unique_ptr<clang::ASTUnit> ErrUnit; @@ -193,8 +189,7 @@ TEST_F(ASTUnitTest, LoadFromCommandLineWorkingDirectory) { const char *Args[] = {"clang", "-working-directory", WorkingDir.c_str(), InputFileName.c_str()}; - auto Diags = CompilerInstance::createDiagnostics( - *llvm::vfs::getRealFileSystem(), new DiagnosticOptions()); + auto Diags = CompilerInstance::createDiagnostics(new DiagnosticOptions()); auto PCHContainerOps = std::make_shared<PCHContainerOperations>(); std::unique_ptr<clang::ASTUnit> ErrUnit; diff --git a/clang/unittests/Frontend/CodeGenActionTest.cpp b/clang/unittests/Frontend/CodeGenActionTest.cpp index d855302ed05429..a6520910c83996 100644 --- a/clang/unittests/Frontend/CodeGenActionTest.cpp +++ b/clang/unittests/Frontend/CodeGenActionTest.cpp @@ -16,7 +16,6 @@ #include "clang/Frontend/CompilerInstance.h" #include "clang/Lex/PreprocessorOptions.h" #include "llvm/Support/FormatVariadic.h" -#include "llvm/Support/VirtualFileSystem.h" #include "gtest/gtest.h" using namespace llvm; @@ -53,7 +52,7 @@ TEST(CodeGenTest, TestNullCodeGen) { Invocation->getTargetOpts().Triple = "i386-unknown-linux-gnu"; CompilerInstance Compiler; Compiler.setInvocation(std::move(Invocation)); - Compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); + Compiler.createDiagnostics(); EXPECT_TRUE(Compiler.hasDiagnostics()); std::unique_ptr<FrontendAction> Act(new NullCodeGenAction); @@ -71,7 +70,7 @@ TEST(CodeGenTest, CodeGenFromIRMemBuffer) { Invocation->getTargetOpts().Triple = "i386-unknown-linux-gnu"; CompilerInstance Compiler; Compiler.setInvocation(std::move(Invocation)); - Compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); + Compiler.createDiagnostics(); EXPECT_TRUE(Compiler.hasDiagnostics()); EmitLLVMOnlyAction Action; @@ -102,7 +101,7 @@ TEST(CodeGenTest, DebugInfoCWDCodeGen) { SmallString<256> IRBuffer; Compiler.setOutputStream(std::make_unique<raw_svector_ostream>(IRBuffer)); Compiler.setInvocation(std::move(Invocation)); - Compiler.createDiagnostics(*VFS); + Compiler.createDiagnostics(); Compiler.createFileManager(std::move(VFS)); EmitLLVMAction Action; diff --git a/clang/unittests/Frontend/CompilerInstanceTest.cpp b/clang/unittests/Frontend/CompilerInstanceTest.cpp index 07329eb299e293..5cf548e913cc10 100644 --- a/clang/unittests/Frontend/CompilerInstanceTest.cpp +++ b/clang/unittests/Frontend/CompilerInstanceTest.cpp @@ -13,7 +13,6 @@ #include "llvm/Support/FileSystem.h" #include "llvm/Support/Format.h" #include "llvm/Support/ToolOutputFile.h" -#include "llvm/Support/VirtualFileSystem.h" #include "gtest/gtest.h" using namespace llvm; @@ -54,8 +53,7 @@ TEST(CompilerInstance, DefaultVFSOverlayFromInvocation) { const char *Args[] = {"clang", VFSArg.c_str(), "-xc++", "-"}; IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*llvm::vfs::getRealFileSystem(), - new DiagnosticOptions()); + CompilerInstance::createDiagnostics(new DiagnosticOptions()); CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; @@ -89,9 +87,8 @@ TEST(CompilerInstance, AllowDiagnosticLogWithUnownedDiagnosticConsumer) { auto DiagPrinter = std::make_unique<TextDiagnosticPrinter>( DiagnosticsOS, new DiagnosticOptions()); CompilerInstance Instance; - IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - Instance.createDiagnostics(*llvm::vfs::getRealFileSystem(), DiagOpts, - DiagPrinter.get(), /*ShouldOwnClient=*/false); + IntrusiveRefCntPtr<DiagnosticsEngine> Diags = Instance.createDiagnostics( + DiagOpts, DiagPrinter.get(), /*ShouldOwnClient=*/false); Diags->Report(diag::err_expected) << "no crash"; ASSERT_EQ(DiagnosticOutput, "error: expected no crash\n"); diff --git a/clang/unittests/Frontend/CompilerInvocationTest.cpp b/clang/unittests/Frontend/CompilerInvocationTest.cpp index 4ff6824f1e21e3..45478de5e6f7c8 100644 --- a/clang/unittests/Frontend/CompilerInvocationTest.cpp +++ b/clang/unittests/Frontend/CompilerInvocationTest.cpp @@ -12,7 +12,6 @@ #include "clang/Frontend/TextDiagnosticBuffer.h" #include "clang/Lex/PreprocessorOptions.h" #include "clang/Serialization/ModuleFileExtension.h" -#include "llvm/Support/VirtualFileSystem.h" #include "llvm/TargetParser/Host.h" #include "gmock/gmock.h" @@ -39,9 +38,9 @@ class CommandLineTest : public ::testing::Test { } CommandLineTest() - : Diags(CompilerInstance::createDiagnostics( - *llvm::vfs::getRealFileSystem(), new DiagnosticOptions(), - new TextDiagnosticBuffer())) {} + : Diags(CompilerInstance::createDiagnostics(new DiagnosticOptions(), + new TextDiagnosticBuffer())) { + } }; template <typename M> diff --git a/clang/unittests/Frontend/FrontendActionTest.cpp b/clang/unittests/Frontend/FrontendActionTest.cpp index 75e166767c6678..6ce9ba6f6a0888 100644 --- a/clang/unittests/Frontend/FrontendActionTest.cpp +++ b/clang/unittests/Frontend/FrontendActionTest.cpp @@ -20,7 +20,6 @@ #include "clang/Serialization/InMemoryModuleCache.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/ToolOutputFile.h" -#include "llvm/Support/VirtualFileSystem.h" #include "llvm/TargetParser/Triple.h" #include "gtest/gtest.h" @@ -91,7 +90,7 @@ TEST(ASTFrontendAction, Sanity) { invocation->getTargetOpts().Triple = "i386-unknown-linux-gnu"; CompilerInstance compiler; compiler.setInvocation(std::move(invocation)); - compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); + compiler.createDiagnostics(); TestASTFrontendAction test_action; ASSERT_TRUE(compiler.ExecuteAction(test_action)); @@ -111,7 +110,7 @@ TEST(ASTFrontendAction, IncrementalParsing) { invocation->getTargetOpts().Triple = "i386-unknown-linux-gnu"; CompilerInstance compiler; compiler.setInvocation(std::move(invocation)); - compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); + compiler.createDiagnostics(); TestASTFrontendAction test_action(/*enableIncrementalProcessing=*/true); ASSERT_TRUE(compiler.ExecuteAction(test_action)); @@ -138,7 +137,7 @@ TEST(ASTFrontendAction, LateTemplateIncrementalParsing) { invocation->getTargetOpts().Triple = "i386-unknown-linux-gnu"; CompilerInstance compiler; compiler.setInvocation(std::move(invocation)); - compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); + compiler.createDiagnostics(); TestASTFrontendAction test_action(/*enableIncrementalProcessing=*/true, /*actOnEndOfTranslationUnit=*/true); @@ -184,7 +183,7 @@ TEST(PreprocessorFrontendAction, EndSourceFile) { Invocation->getTargetOpts().Triple = "i386-unknown-linux-gnu"; CompilerInstance Compiler; Compiler.setInvocation(std::move(Invocation)); - Compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); + Compiler.createDiagnostics(); TestPPCallbacks *Callbacks = new TestPPCallbacks; TestPPCallbacksFrontendAction TestAction(Callbacks); @@ -246,8 +245,7 @@ TEST(ASTFrontendAction, ExternalSemaSource) { CompilerInstance Compiler; Compiler.setInvocation(std::move(Invocation)); auto *TDC = new TypoDiagnosticConsumer; - Compiler.createDiagnostics(*llvm::vfs::getRealFileSystem(), TDC, - /*ShouldOwnClient=*/true); + Compiler.createDiagnostics(TDC, /*ShouldOwnClient=*/true); Compiler.setExternalSemaSource(new TypoExternalSemaSource(Compiler)); SyntaxOnlyAction TestAction; @@ -279,7 +277,7 @@ TEST(GeneratePCHFrontendAction, CacheGeneratedPCH) { Invocation->getTargetOpts().Triple = "x86_64-apple-darwin19.0.0"; CompilerInstance Compiler; Compiler.setInvocation(std::move(Invocation)); - Compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); + Compiler.createDiagnostics(); GeneratePCHAction TestAction; ASSERT_TRUE(Compiler.ExecuteAction(TestAction)); diff --git a/clang/unittests/Frontend/OutputStreamTest.cpp b/clang/unittests/Frontend/OutputStreamTest.cpp index fa5d726d252903..2618558c7e11ee 100644 --- a/clang/unittests/Frontend/OutputStreamTest.cpp +++ b/clang/unittests/Frontend/OutputStreamTest.cpp @@ -13,7 +13,6 @@ #include "clang/Frontend/TextDiagnosticPrinter.h" #include "clang/FrontendTool/Utils.h" #include "clang/Lex/PreprocessorOptions.h" -#include "llvm/Support/VirtualFileSystem.h" #include "gtest/gtest.h" using namespace llvm; @@ -38,7 +37,7 @@ TEST(FrontendOutputTests, TestOutputStream) { Compiler.setOutputStream(std::move(IRStream)); Compiler.setInvocation(std::move(Invocation)); - Compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); + Compiler.createDiagnostics(); bool Success = ExecuteCompilerInvocation(&Compiler); EXPECT_TRUE(Success); @@ -63,7 +62,6 @@ TEST(FrontendOutputTests, TestVerboseOutputStreamShared) { Compiler.setInvocation(std::move(Invocation)); IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); Compiler.createDiagnostics( - *llvm::vfs::getRealFileSystem(), new TextDiagnosticPrinter(llvm::nulls(), &*DiagOpts), true); Compiler.setVerboseOutputStream(VerboseStream); @@ -93,7 +91,6 @@ TEST(FrontendOutputTests, TestVerboseOutputStreamOwned) { Compiler.setInvocation(std::move(Invocation)); IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); Compiler.createDiagnostics( - *llvm::vfs::getRealFileSystem(), new TextDiagnosticPrinter(llvm::nulls(), &*DiagOpts), true); Compiler.setVerboseOutputStream(std::move(VerboseStream)); diff --git a/clang/unittests/Frontend/PCHPreambleTest.cpp b/clang/unittests/Frontend/PCHPreambleTest.cpp index 58ec2e2ce70589..2ce24c91ac0f13 100644 --- a/clang/unittests/Frontend/PCHPreambleTest.cpp +++ b/clang/unittests/Frontend/PCHPreambleTest.cpp @@ -94,9 +94,8 @@ class PCHPreambleTest : public ::testing::Test { PreprocessorOptions &PPOpts = CI->getPreprocessorOpts(); PPOpts.RemappedFilesKeepOriginalName = true; - IntrusiveRefCntPtr<DiagnosticsEngine> Diags( - CompilerInstance::createDiagnostics(*VFS, new DiagnosticOptions, - new DiagnosticConsumer)); + IntrusiveRefCntPtr<DiagnosticsEngine> + Diags(CompilerInstance::createDiagnostics(new DiagnosticOptions, new DiagnosticConsumer)); FileManager *FileMgr = new FileManager(FSOpts, VFS); diff --git a/clang/unittests/Frontend/ReparseWorkingDirTest.cpp b/clang/unittests/Frontend/ReparseWorkingDirTest.cpp index b0f2d51b80b9e7..ca7ce23dd64b22 100644 --- a/clang/unittests/Frontend/ReparseWorkingDirTest.cpp +++ b/clang/unittests/Frontend/ReparseWorkingDirTest.cpp @@ -58,7 +58,7 @@ class ReparseWorkingDirTest : public ::testing::Test { CI->getTargetOpts().Triple = "i386-unknown-linux-gnu"; IntrusiveRefCntPtr<DiagnosticsEngine> Diags( - CompilerInstance::createDiagnostics(*VFS, new DiagnosticOptions, + CompilerInstance::createDiagnostics(new DiagnosticOptions, new DiagnosticConsumer)); FileManager *FileMgr = new FileManager(CI->getFileSystemOpts(), VFS); diff --git a/clang/unittests/Frontend/UtilsTest.cpp b/clang/unittests/Frontend/UtilsTest.cpp index 304fbe2a8e69f0..ae014d3f86b5aa 100644 --- a/clang/unittests/Frontend/UtilsTest.cpp +++ b/clang/unittests/Frontend/UtilsTest.cpp @@ -28,9 +28,9 @@ TEST(BuildCompilerInvocationTest, RecoverMultipleJobs) { clang::IgnoringDiagConsumer D; CreateInvocationOptions Opts; Opts.RecoverOnError = true; + Opts.Diags = clang::CompilerInstance::createDiagnostics(new DiagnosticOptions, + &D, false); Opts.VFS = new llvm::vfs::InMemoryFileSystem(); - Opts.Diags = clang::CompilerInstance::createDiagnostics( - *Opts.VFS, new DiagnosticOptions, &D, false); std::unique_ptr<CompilerInvocation> CI = createInvocation(Args, Opts); ASSERT_TRUE(CI); EXPECT_THAT(CI->TargetOpts->Triple, testing::StartsWith("i386-")); @@ -46,7 +46,7 @@ TEST(BuildCompilerInvocationTest, ProbePrecompiled) { clang::IgnoringDiagConsumer D; llvm::IntrusiveRefCntPtr<DiagnosticsEngine> CommandLineDiagsEngine = - clang::CompilerInstance::createDiagnostics(*FS, new DiagnosticOptions, &D, + clang::CompilerInstance::createDiagnostics(new DiagnosticOptions, &D, false); // Default: ProbePrecompiled=false CreateInvocationOptions CIOpts; diff --git a/clang/unittests/Sema/SemaNoloadLookupTest.cpp b/clang/unittests/Sema/SemaNoloadLookupTest.cpp index a8e1bb0bd2c5de..cf89c7331e4e0f 100644 --- a/clang/unittests/Sema/SemaNoloadLookupTest.cpp +++ b/clang/unittests/Sema/SemaNoloadLookupTest.cpp @@ -57,12 +57,11 @@ class NoloadLookupTest : public ::testing::Test { std::string FileName = llvm::Twine(ModuleName + ".cppm").str(); addFile(FileName, Contents); - CreateInvocationOptions CIOpts; - CIOpts.VFS = llvm::vfs::getRealFileSystem(); IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*CIOpts.VFS, - new DiagnosticOptions()); + CompilerInstance::createDiagnostics(new DiagnosticOptions()); + CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; + CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); std::string CacheBMIPath = llvm::Twine(TestDir + "/" + ModuleName + ".pcm").str(); diff --git a/clang/unittests/Serialization/ForceCheckFileInputTest.cpp b/clang/unittests/Serialization/ForceCheckFileInputTest.cpp index 6a839d1bf9350b..ad8892b8c8be1e 100644 --- a/clang/unittests/Serialization/ForceCheckFileInputTest.cpp +++ b/clang/unittests/Serialization/ForceCheckFileInputTest.cpp @@ -63,13 +63,11 @@ export int aa = 43; std::string BMIPath = llvm::Twine(TestDir + "/a.pcm").str(); { - CreateInvocationOptions CIOpts; - CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); - IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*CIOpts.VFS, - new DiagnosticOptions()); + CompilerInstance::createDiagnostics(new DiagnosticOptions()); + CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; + CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); const char *Args[] = {"clang++", "-std=c++20", "--precompile", "-working-directory", @@ -105,12 +103,11 @@ export int aa = 43; } { - CreateInvocationOptions CIOpts; - CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*CIOpts.VFS, - new DiagnosticOptions()); + CompilerInstance::createDiagnostics(new DiagnosticOptions()); + CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; + CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); std::string BMIPath = llvm::Twine(TestDir + "/a.pcm").str(); const char *Args[] = { diff --git a/clang/unittests/Serialization/ModuleCacheTest.cpp b/clang/unittests/Serialization/ModuleCacheTest.cpp index 6ceee1c6536cb5..a7ca98549b4125 100644 --- a/clang/unittests/Serialization/ModuleCacheTest.cpp +++ b/clang/unittests/Serialization/ModuleCacheTest.cpp @@ -106,11 +106,11 @@ TEST_F(ModuleCacheTest, CachedModuleNewPath) { SmallString<256> MCPArg("-fmodules-cache-path="); MCPArg.append(ModuleCachePath); - CreateInvocationOptions CIOpts; - CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*CIOpts.VFS, new DiagnosticOptions()); + CompilerInstance::createDiagnostics(new DiagnosticOptions()); + CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; + CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); // First run should pass with no errors const char *Args[] = {"clang", "-fmodules", "-Fframeworks", @@ -156,11 +156,11 @@ TEST_F(ModuleCacheTest, CachedModuleNewPathAllowErrors) { SmallString<256> MCPArg("-fmodules-cache-path="); MCPArg.append(ModuleCachePath); - CreateInvocationOptions CIOpts; - CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*CIOpts.VFS, new DiagnosticOptions()); + CompilerInstance::createDiagnostics(new DiagnosticOptions()); + CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; + CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); // First run should pass with no errors const char *Args[] = {"clang", "-fmodules", "-Fframeworks", diff --git a/clang/unittests/Serialization/NoCommentsTest.cpp b/clang/unittests/Serialization/NoCommentsTest.cpp index a1fb23404e4154..a0a564aeff9a15 100644 --- a/clang/unittests/Serialization/NoCommentsTest.cpp +++ b/clang/unittests/Serialization/NoCommentsTest.cpp @@ -83,11 +83,11 @@ export module Comments; void foo() {} )cpp"); - CreateInvocationOptions CIOpts; - CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*CIOpts.VFS, new DiagnosticOptions()); + CompilerInstance::createDiagnostics(new DiagnosticOptions()); + CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; + CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); std::string CacheBMIPath = llvm::Twine(TestDir + "/Comments.pcm").str(); const char *Args[] = {"clang++", "-std=c++20", diff --git a/clang/unittests/Serialization/PreambleInNamedModulesTest.cpp b/clang/unittests/Serialization/PreambleInNamedModulesTest.cpp index cf317eddb0f373..d26e1cb633654f 100644 --- a/clang/unittests/Serialization/PreambleInNamedModulesTest.cpp +++ b/clang/unittests/Serialization/PreambleInNamedModulesTest.cpp @@ -75,10 +75,10 @@ export using ::E; )cpp", MainFilePath); + IntrusiveRefCntPtr<DiagnosticsEngine> Diags = + CompilerInstance::createDiagnostics(new DiagnosticOptions()); IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS = llvm::vfs::createPhysicalFileSystem(); - IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*VFS, new DiagnosticOptions()); CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; diff --git a/clang/unittests/Serialization/VarDeclConstantInitTest.cpp b/clang/unittests/Serialization/VarDeclConstantInitTest.cpp index 14c0c30add2078..5cbbfb9ff003b3 100644 --- a/clang/unittests/Serialization/VarDeclConstantInitTest.cpp +++ b/clang/unittests/Serialization/VarDeclConstantInitTest.cpp @@ -90,11 +90,11 @@ export namespace Fibonacci } )cpp"); - CreateInvocationOptions CIOpts; - CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); IntrusiveRefCntPtr<DiagnosticsEngine> Diags = - CompilerInstance::createDiagnostics(*CIOpts.VFS, new DiagnosticOptions()); + CompilerInstance::createDiagnostics(new DiagnosticOptions()); + CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; + CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); const char *Args[] = {"clang++", "-std=c++20", "--precompile", "-working-directory", diff --git a/clang/unittests/Support/TimeProfilerTest.cpp b/clang/unittests/Support/TimeProfilerTest.cpp index 995ebf625b7ab2..339b470153e64e 100644 --- a/clang/unittests/Support/TimeProfilerTest.cpp +++ b/clang/unittests/Support/TimeProfilerTest.cpp @@ -45,6 +45,8 @@ std::string teardownProfiler() { // We only parse AST here. This is enough for constexpr evaluation. bool compileFromString(StringRef Code, StringRef Standard, StringRef File, llvm::StringMap<std::string> Headers = {}) { + CompilerInstance Compiler; + Compiler.createDiagnostics(); llvm::IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> FS( new llvm::vfs::InMemoryFileSystem()); @@ -55,8 +57,6 @@ bool compileFromString(StringRef Code, StringRef Standard, StringRef File, } llvm::IntrusiveRefCntPtr<FileManager> Files( new FileManager(FileSystemOptions(), FS)); - CompilerInstance Compiler; - Compiler.createDiagnostics(Files->getVirtualFileSystem()); Compiler.setFileManager(Files.get()); auto Invocation = std::make_shared<CompilerInvocation>(); diff --git a/clang/unittests/Tooling/DependencyScanning/DependencyScannerTest.cpp b/clang/unittests/Tooling/DependencyScanning/DependencyScannerTest.cpp index e1c47708059920..ec0e143be4a209 100644 --- a/clang/unittests/Tooling/DependencyScanning/DependencyScannerTest.cpp +++ b/clang/unittests/Tooling/DependencyScanning/DependencyScannerTest.cpp @@ -60,8 +60,7 @@ class TestDependencyScanningAction : public tooling::ToolAction { Compiler.setInvocation(std::move(Invocation)); Compiler.setFileManager(FileMgr); - Compiler.createDiagnostics(FileMgr->getVirtualFileSystem(), DiagConsumer, - /*ShouldOwnClient=*/false); + Compiler.createDiagnostics(DiagConsumer, /*ShouldOwnClient=*/false); if (!Compiler.hasDiagnostics()) return false; diff --git a/clang/unittests/Tooling/ToolingTest.cpp b/clang/unittests/Tooling/ToolingTest.cpp index 0b65577a05193f..f41a44fa0922a1 100644 --- a/clang/unittests/Tooling/ToolingTest.cpp +++ b/clang/unittests/Tooling/ToolingTest.cpp @@ -384,8 +384,7 @@ struct CommandLineExtractorTest : public ::testing::Test { public: CommandLineExtractorTest() : InMemoryFS(new llvm::vfs::InMemoryFileSystem), - Diags(CompilerInstance::createDiagnostics(*InMemoryFS, - new DiagnosticOptions)), + Diags(CompilerInstance::createDiagnostics(new DiagnosticOptions)), Driver("clang", llvm::sys::getDefaultTargetTriple(), *Diags, "clang LLVM compiler", overlayRealFS(InMemoryFS)) {} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits