diff options
Diffstat (limited to 'clang/lib/Frontend/CompilerInstance.cpp')
-rw-r--r-- | clang/lib/Frontend/CompilerInstance.cpp | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/clang/lib/Frontend/CompilerInstance.cpp b/clang/lib/Frontend/CompilerInstance.cpp index cc39049..503d364 100644 --- a/clang/lib/Frontend/CompilerInstance.cpp +++ b/clang/lib/Frontend/CompilerInstance.cpp @@ -280,20 +280,20 @@ static void collectVFSEntries(CompilerInstance &CI, } // Diagnostics -static void SetUpDiagnosticLog(DiagnosticOptions &DiagOpts, +static void SetUpDiagnosticLog(DiagnosticOptions *DiagOpts, const CodeGenOptions *CodeGenOpts, DiagnosticsEngine &Diags) { std::error_code EC; std::unique_ptr<raw_ostream> StreamOwner; raw_ostream *OS = &llvm::errs(); - if (DiagOpts.DiagnosticLogFile != "-") { + if (DiagOpts->DiagnosticLogFile != "-") { // Create the output stream. auto FileOS = std::make_unique<llvm::raw_fd_ostream>( - DiagOpts.DiagnosticLogFile, EC, + DiagOpts->DiagnosticLogFile, EC, llvm::sys::fs::OF_Append | llvm::sys::fs::OF_TextWithCRLF); if (EC) { Diags.Report(diag::warn_fe_cc_log_diagnostics_failure) - << DiagOpts.DiagnosticLogFile << EC.message(); + << DiagOpts->DiagnosticLogFile << EC.message(); } else { FileOS->SetUnbuffered(); OS = FileOS.get(); @@ -315,7 +315,7 @@ static void SetUpDiagnosticLog(DiagnosticOptions &DiagOpts, } } -static void SetupSerializedDiagnostics(DiagnosticOptions &DiagOpts, +static void SetupSerializedDiagnostics(DiagnosticOptions *DiagOpts, DiagnosticsEngine &Diags, StringRef OutputFile) { auto SerializedConsumer = @@ -333,12 +333,12 @@ static void SetupSerializedDiagnostics(DiagnosticOptions &DiagOpts, void CompilerInstance::createDiagnostics(llvm::vfs::FileSystem &VFS, DiagnosticConsumer *Client, bool ShouldOwnClient) { - Diagnostics = createDiagnostics(VFS, getDiagnosticOpts(), Client, + Diagnostics = createDiagnostics(VFS, &getDiagnosticOpts(), Client, ShouldOwnClient, &getCodeGenOpts()); } IntrusiveRefCntPtr<DiagnosticsEngine> CompilerInstance::createDiagnostics( - llvm::vfs::FileSystem &VFS, DiagnosticOptions &Opts, + llvm::vfs::FileSystem &VFS, DiagnosticOptions *Opts, DiagnosticConsumer *Client, bool ShouldOwnClient, const CodeGenOptions *CodeGenOpts) { IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); @@ -349,24 +349,25 @@ IntrusiveRefCntPtr<DiagnosticsEngine> CompilerInstance::createDiagnostics( // implementing -verify. if (Client) { Diags->setClient(Client, ShouldOwnClient); - } else if (Opts.getFormat() == DiagnosticOptions::SARIF) { + } else if (Opts->getFormat() == DiagnosticOptions::SARIF) { Diags->setClient(new SARIFDiagnosticPrinter(llvm::errs(), Opts)); } else Diags->setClient(new TextDiagnosticPrinter(llvm::errs(), Opts)); // Chain in -verify checker, if requested. - if (Opts.VerifyDiagnostics) + if (Opts->VerifyDiagnostics) Diags->setClient(new VerifyDiagnosticConsumer(*Diags)); // Chain in -diagnostic-log-file dumper, if requested. - if (!Opts.DiagnosticLogFile.empty()) + if (!Opts->DiagnosticLogFile.empty()) SetUpDiagnosticLog(Opts, CodeGenOpts, *Diags); - if (!Opts.DiagnosticSerializationFile.empty()) - SetupSerializedDiagnostics(Opts, *Diags, Opts.DiagnosticSerializationFile); + if (!Opts->DiagnosticSerializationFile.empty()) + SetupSerializedDiagnostics(Opts, *Diags, + Opts->DiagnosticSerializationFile); // Configure our handling of diagnostics. - ProcessWarningOptions(*Diags, Opts, VFS); + ProcessWarningOptions(*Diags, *Opts, VFS); return Diags; } |