diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-11-14 07:53:24 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-11-14 07:53:24 +0000 |
commit | 1b39a2edff50f6dd8a8609c19ff16e2829836bdc (patch) | |
tree | 9293110be8e3da3b0bd474a5326bb4e71db226e7 /clang/lib/Frontend/CompilerInstance.cpp | |
parent | 409e890f8d705ec7b2ee7aff8508dfe1ac835eae (diff) | |
download | bcm5719-llvm-1b39a2edff50f6dd8a8609c19ff16e2829836bdc.tar.gz bcm5719-llvm-1b39a2edff50f6dd8a8609c19ff16e2829836bdc.zip |
Shuffle VerifyDiagnosticsClient API to be less fragile.
llvm-svn: 88765
Diffstat (limited to 'clang/lib/Frontend/CompilerInstance.cpp')
-rw-r--r-- | clang/lib/Frontend/CompilerInstance.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/clang/lib/Frontend/CompilerInstance.cpp b/clang/lib/Frontend/CompilerInstance.cpp index b5277acdff4..42352dfe512 100644 --- a/clang/lib/Frontend/CompilerInstance.cpp +++ b/clang/lib/Frontend/CompilerInstance.cpp @@ -113,6 +113,8 @@ void CompilerInstance::createDiagnostics(int Argc, char **Argv) { Diagnostic *CompilerInstance::createDiagnostics(const DiagnosticOptions &Opts, int Argc, char **Argv) { + llvm::OwningPtr<Diagnostic> Diags(new Diagnostic()); + // Create the diagnostic client for reporting errors or for // implementing -verify. llvm::OwningPtr<DiagnosticClient> DiagClient( @@ -120,17 +122,17 @@ Diagnostic *CompilerInstance::createDiagnostics(const DiagnosticOptions &Opts, // Chain in -verify checker, if requested. if (Opts.VerifyDiagnostics) - DiagClient.reset(new VerifyDiagnosticsClient(DiagClient.take())); + DiagClient.reset(new VerifyDiagnosticsClient(*Diags, DiagClient.take())); if (!Opts.DumpBuildInformation.empty()) SetUpBuildDumpLog(Opts, Argc, Argv, DiagClient); // Configure our handling of diagnostics. - Diagnostic *Diags = new Diagnostic(DiagClient.take()); + Diags->setClient(DiagClient.take()); if (ProcessWarningOptions(*Diags, Opts)) return 0; - return Diags; + return Diags.take(); } // File Manager |