diff options
Diffstat (limited to 'clang/lib/Frontend/CompilerInstance.cpp')
| -rw-r--r-- | clang/lib/Frontend/CompilerInstance.cpp | 14 | 
1 files changed, 9 insertions, 5 deletions
diff --git a/clang/lib/Frontend/CompilerInstance.cpp b/clang/lib/Frontend/CompilerInstance.cpp index c5e5d7f..7cfcd1c 100644 --- a/clang/lib/Frontend/CompilerInstance.cpp +++ b/clang/lib/Frontend/CompilerInstance.cpp @@ -113,19 +113,23 @@ static void SetUpBuildDumpLog(const DiagnosticOptions &DiagOpts,    Diags.setClient(new ChainedDiagnosticClient(Diags.takeClient(), Logger));  } -void CompilerInstance::createDiagnostics(int Argc, const char* const *Argv) { -  Diagnostics = createDiagnostics(getDiagnosticOpts(), Argc, Argv); +void CompilerInstance::createDiagnostics(int Argc, const char* const *Argv, +                                         DiagnosticClient *Client) { +  Diagnostics = createDiagnostics(getDiagnosticOpts(), Argc, Argv, Client);  }  llvm::IntrusiveRefCntPtr<Diagnostic>   CompilerInstance::createDiagnostics(const DiagnosticOptions &Opts, -                                    int Argc, const char* const *Argv) { +                                    int Argc, const char* const *Argv, +                                    DiagnosticClient *Client) {    llvm::IntrusiveRefCntPtr<Diagnostic> Diags(new Diagnostic());    // Create the diagnostic client for reporting errors or for    // implementing -verify. -  llvm::OwningPtr<DiagnosticClient> DiagClient; -  Diags->setClient(new TextDiagnosticPrinter(llvm::errs(), Opts)); +  if (Client) +    Diags->setClient(Client); +  else +    Diags->setClient(new TextDiagnosticPrinter(llvm::errs(), Opts));    // Chain in -verify checker, if requested.    if (Opts.VerifyDiagnostics)  | 
