aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInstance.cpp
diff options
context:
space:
mode:
authorKadir Cetinkaya <kadircet@google.com>2024-11-21 13:04:30 +0100
committerKadir Cetinkaya <kadircet@google.com>2024-11-21 14:55:30 +0100
commitdf9a14d7bbf1180e4f1474254c9d7ed6bcb4ce55 (patch)
tree4f440ad02ebb7990fda10120328a833459b1ab89 /clang/lib/Frontend/CompilerInstance.cpp
parentd800ea7cb12245f65f886e18545ba83355825246 (diff)
downloadllvm-df9a14d7bbf1180e4f1474254c9d7ed6bcb4ce55.zip
llvm-df9a14d7bbf1180e4f1474254c9d7ed6bcb4ce55.tar.gz
llvm-df9a14d7bbf1180e4f1474254c9d7ed6bcb4ce55.tar.bz2
Reapply "[NFC] Explicitly pass a VFS when creating DiagnosticsEngine (#115852)"
This reverts commit a1153cd6fedd4c906a9840987934ca4712e34cb2 with fixes to lldb breakages. Fixes https://github.com/llvm/llvm-project/issues/117145.
Diffstat (limited to 'clang/lib/Frontend/CompilerInstance.cpp')
-rw-r--r--clang/lib/Frontend/CompilerInstance.cpp30
1 files changed, 14 insertions, 16 deletions
diff --git a/clang/lib/Frontend/CompilerInstance.cpp b/clang/lib/Frontend/CompilerInstance.cpp
index ecc6782..fbfc305 100644
--- a/clang/lib/Frontend/CompilerInstance.cpp
+++ b/clang/lib/Frontend/CompilerInstance.cpp
@@ -332,23 +332,20 @@ static void SetupSerializedDiagnostics(DiagnosticOptions *DiagOpts,
}
}
-void CompilerInstance::createDiagnostics(DiagnosticConsumer *Client,
+void CompilerInstance::createDiagnostics(llvm::vfs::FileSystem &VFS,
+ DiagnosticConsumer *Client,
bool ShouldOwnClient) {
- Diagnostics = createDiagnostics(
- &getDiagnosticOpts(), Client, ShouldOwnClient, &getCodeGenOpts(),
- FileMgr ? FileMgr->getVirtualFileSystemPtr() : nullptr);
+ Diagnostics = createDiagnostics(VFS, &getDiagnosticOpts(), Client,
+ ShouldOwnClient, &getCodeGenOpts());
}
IntrusiveRefCntPtr<DiagnosticsEngine> CompilerInstance::createDiagnostics(
- DiagnosticOptions *Opts, DiagnosticConsumer *Client, bool ShouldOwnClient,
- const CodeGenOptions *CodeGenOpts,
- llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS) {
+ llvm::vfs::FileSystem &VFS, DiagnosticOptions *Opts,
+ DiagnosticConsumer *Client, bool ShouldOwnClient,
+ const CodeGenOptions *CodeGenOpts) {
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs());
- IntrusiveRefCntPtr<DiagnosticsEngine>
- Diags(new DiagnosticsEngine(DiagID, Opts));
-
- if (!VFS)
- VFS = llvm::vfs::getRealFileSystem();
+ IntrusiveRefCntPtr<DiagnosticsEngine> Diags(
+ new DiagnosticsEngine(DiagID, Opts));
// Create the diagnostic client for reporting errors or for
// implementing -verify.
@@ -372,7 +369,7 @@ IntrusiveRefCntPtr<DiagnosticsEngine> CompilerInstance::createDiagnostics(
Opts->DiagnosticSerializationFile);
// Configure our handling of diagnostics.
- ProcessWarningOptions(*Diags, *Opts, *VFS);
+ ProcessWarningOptions(*Diags, *Opts, VFS);
return Diags;
}
@@ -1240,9 +1237,10 @@ compileModuleImpl(CompilerInstance &ImportingInstance, SourceLocation ImportLoc,
auto &Inv = *Invocation;
Instance.setInvocation(std::move(Invocation));
- Instance.createDiagnostics(new ForwardingDiagnosticConsumer(
- ImportingInstance.getDiagnosticClient()),
- /*ShouldOwnClient=*/true);
+ Instance.createDiagnostics(
+ ImportingInstance.getVirtualFileSystem(),
+ new ForwardingDiagnosticConsumer(ImportingInstance.getDiagnosticClient()),
+ /*ShouldOwnClient=*/true);
if (llvm::is_contained(DiagOpts.SystemHeaderWarningsModules, ModuleName))
Instance.getDiagnostics().setSuppressSystemWarnings(false);