[clang-tools-extra] a1153cd - Revert "[NFC] Explicitly pass a VFS when creating DiagnosticsEngine (#115852)"
Sylvestre Ledru via cfe-commits
cfe-commits at lists.llvm.org
Thu Nov 21 04:04:54 PST 2024
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)) {}
More information about the cfe-commits
mailing list