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 | 221c7211c507482a91e97ede1bf6cf65a456ff67 (patch) | |
tree | 6d9a62f4eaafcca068cd42aeb363e0141a5110fa /lib/Frontend/CompilerInstance.cpp | |
parent | ccb6cb6fd9e48697564d536b07397b95dfc28d5b (diff) |
Shuffle VerifyDiagnosticsClient API to be less fragile.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88765 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Frontend/CompilerInstance.cpp')
-rw-r--r-- | lib/Frontend/CompilerInstance.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/Frontend/CompilerInstance.cpp b/lib/Frontend/CompilerInstance.cpp index b5277acdff..42352dfe51 100644 --- a/lib/Frontend/CompilerInstance.cpp +++ b/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 |