diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-04-05 23:52:57 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-04-05 23:52:57 +0000 |
commit | 7f95d26e53052b368642b43dbef7ebb1911b5024 (patch) | |
tree | a1e04b03ab674a997d3788420d75ce5eb4b4b89c /clang/lib/Frontend/CompilerInstance.cpp | |
parent | 1a9b3f348484b6792c51fd9995a90fbd99ade773 (diff) | |
download | bcm5719-llvm-7f95d26e53052b368642b43dbef7ebb1911b5024.tar.gz bcm5719-llvm-7f95d26e53052b368642b43dbef7ebb1911b5024.zip |
Make Diagnostic reference-counted, which is simpler than juggling
maybe-ownership vs. ownership.
llvm-svn: 100498
Diffstat (limited to 'clang/lib/Frontend/CompilerInstance.cpp')
-rw-r--r-- | clang/lib/Frontend/CompilerInstance.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/clang/lib/Frontend/CompilerInstance.cpp b/clang/lib/Frontend/CompilerInstance.cpp index 879e9f681de..1f915e3713d 100644 --- a/clang/lib/Frontend/CompilerInstance.cpp +++ b/clang/lib/Frontend/CompilerInstance.cpp @@ -52,7 +52,7 @@ void CompilerInstance::setInvocation(CompilerInvocation *Value) { } void CompilerInstance::setDiagnostics(Diagnostic *Value) { - Diagnostics.reset(Value); + Diagnostics = Value; } void CompilerInstance::setDiagnosticClient(DiagnosticClient *Value) { @@ -130,15 +130,16 @@ static void SetUpBuildDumpLog(const DiagnosticOptions &DiagOpts, } void CompilerInstance::createDiagnostics(int Argc, char **Argv) { - Diagnostics.reset(createDiagnostics(getDiagnosticOpts(), Argc, Argv)); + Diagnostics = createDiagnostics(getDiagnosticOpts(), Argc, Argv); if (Diagnostics) DiagClient.reset(Diagnostics->getClient()); } -Diagnostic *CompilerInstance::createDiagnostics(const DiagnosticOptions &Opts, - int Argc, char **Argv) { - llvm::OwningPtr<Diagnostic> Diags(new Diagnostic()); +llvm::IntrusiveRefCntPtr<Diagnostic> +CompilerInstance::createDiagnostics(const DiagnosticOptions &Opts, + int Argc, char **Argv) { + llvm::IntrusiveRefCntPtr<Diagnostic> Diags(new Diagnostic()); // Create the diagnostic client for reporting errors or for // implementing -verify. @@ -152,7 +153,7 @@ Diagnostic *CompilerInstance::createDiagnostics(const DiagnosticOptions &Opts, DiagClient.reset(new TextDiagnosticPrinter(llvm::errs(), Opts)); Diags->setClient(DiagClient.take()); Diags->Report(diag::err_fe_stderr_binary); - return Diags.take(); + return Diags; } else { DiagClient.reset(new BinaryDiagnosticSerializer(llvm::errs())); } @@ -171,7 +172,7 @@ Diagnostic *CompilerInstance::createDiagnostics(const DiagnosticOptions &Opts, // Configure our handling of diagnostics. ProcessWarningOptions(*Diags, Opts); - return Diags.take(); + return Diags; } // File Manager |