@@ -348,20 +348,23 @@ static void SetupSerializedDiagnostics(DiagnosticOptions *DiagOpts,
348348 }
349349}
350350
351- void CompilerInstance::createDiagnostics (llvm::vfs::FileSystem &VFS,
352- DiagnosticConsumer *Client,
351+ void CompilerInstance::createDiagnostics (DiagnosticConsumer *Client,
353352 bool ShouldOwnClient) {
354- Diagnostics = createDiagnostics (VFS, &getDiagnosticOpts (), Client,
355- ShouldOwnClient, &getCodeGenOpts ());
353+ Diagnostics = createDiagnostics (
354+ &getDiagnosticOpts (), Client, ShouldOwnClient, &getCodeGenOpts (),
355+ FileMgr ? FileMgr->getVirtualFileSystemPtr () : nullptr );
356356}
357357
358358IntrusiveRefCntPtr<DiagnosticsEngine> CompilerInstance::createDiagnostics (
359- llvm::vfs::FileSystem &VFS, DiagnosticOptions *Opts ,
360- DiagnosticConsumer *Client, bool ShouldOwnClient ,
361- const CodeGenOptions *CodeGenOpts ) {
359+ DiagnosticOptions *Opts, DiagnosticConsumer *Client, bool ShouldOwnClient ,
360+ const CodeGenOptions *CodeGenOpts ,
361+ llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS ) {
362362 IntrusiveRefCntPtr<DiagnosticIDs> DiagID (new DiagnosticIDs ());
363- IntrusiveRefCntPtr<DiagnosticsEngine> Diags (
364- new DiagnosticsEngine (DiagID, Opts));
363+ IntrusiveRefCntPtr<DiagnosticsEngine>
364+ Diags (new DiagnosticsEngine (DiagID, Opts));
365+
366+ if (!VFS)
367+ VFS = llvm::vfs::getRealFileSystem ();
365368
366369 // Create the diagnostic client for reporting errors or for
367370 // implementing -verify.
@@ -385,7 +388,7 @@ IntrusiveRefCntPtr<DiagnosticsEngine> CompilerInstance::createDiagnostics(
385388 Opts->DiagnosticSerializationFile );
386389
387390 // Configure our handling of diagnostics.
388- ProcessWarningOptions (*Diags, *Opts, VFS);
391+ ProcessWarningOptions (*Diags, *Opts, * VFS);
389392
390393 return Diags;
391394}
@@ -1398,10 +1401,9 @@ compileModuleImpl(CompilerInstance &ImportingInstance, SourceLocation ImportLoc,
13981401 auto &Inv = *Invocation;
13991402 Instance.setInvocation (std::move (Invocation));
14001403
1401- Instance.createDiagnostics (
1402- ImportingInstance.getVirtualFileSystem (),
1403- new ForwardingDiagnosticConsumer (ImportingInstance.getDiagnosticClient ()),
1404- /* ShouldOwnClient=*/ true );
1404+ Instance.createDiagnostics (new ForwardingDiagnosticConsumer (
1405+ ImportingInstance.getDiagnosticClient ()),
1406+ /* ShouldOwnClient=*/ true );
14051407
14061408 if (llvm::is_contained (DiagOpts.SystemHeaderWarningsModules , ModuleName))
14071409 Instance.getDiagnostics ().setSuppressSystemWarnings (false );
0 commit comments