From: David Blaikie Date: Fri, 29 Aug 2014 20:17:13 +0000 (+0000) Subject: unique_ptrify the raw_ostream argument to clang::serialized_diags::create X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6626cf281106904156926a9edb4d34cd2ee76a3d;p=clang unique_ptrify the raw_ostream argument to clang::serialized_diags::create git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216767 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Frontend/SerializedDiagnosticPrinter.h b/include/clang/Frontend/SerializedDiagnosticPrinter.h index f190668e0c..fce795b4a4 100644 --- a/include/clang/Frontend/SerializedDiagnosticPrinter.h +++ b/include/clang/Frontend/SerializedDiagnosticPrinter.h @@ -67,7 +67,7 @@ enum Level { /// This allows wrapper tools for Clang to get diagnostics from Clang /// (via libclang) without needing to parse Clang's command line output. /// -DiagnosticConsumer *create(raw_ostream *OS, +DiagnosticConsumer *create(std::unique_ptr OS, DiagnosticOptions *diags); } // end serialized_diags namespace diff --git a/lib/Frontend/CompilerInstance.cpp b/lib/Frontend/CompilerInstance.cpp index 3d1a18e276..ec4817d61f 100644 --- a/lib/Frontend/CompilerInstance.cpp +++ b/lib/Frontend/CompilerInstance.cpp @@ -165,9 +165,8 @@ static void SetupSerializedDiagnostics(DiagnosticOptions *DiagOpts, DiagnosticsEngine &Diags, StringRef OutputFile) { std::error_code EC; - std::unique_ptr OS; - OS.reset( - new llvm::raw_fd_ostream(OutputFile.str(), EC, llvm::sys::fs::F_None)); + auto OS = llvm::make_unique(OutputFile.str(), EC, + llvm::sys::fs::F_None); if (EC) { Diags.Report(diag::warn_fe_serialized_diag_failure) << OutputFile @@ -176,7 +175,7 @@ static void SetupSerializedDiagnostics(DiagnosticOptions *DiagOpts, } DiagnosticConsumer *SerializedConsumer = - clang::serialized_diags::create(OS.release(), DiagOpts); + clang::serialized_diags::create(std::move(OS), DiagOpts); Diags.setClient(new ChainedDiagnosticConsumer(Diags.takeClient(), SerializedConsumer)); diff --git a/lib/Frontend/SerializedDiagnosticPrinter.cpp b/lib/Frontend/SerializedDiagnosticPrinter.cpp index 29c58a8ac3..66b3333524 100644 --- a/lib/Frontend/SerializedDiagnosticPrinter.cpp +++ b/lib/Frontend/SerializedDiagnosticPrinter.cpp @@ -96,10 +96,9 @@ class SDiagsWriter : public DiagnosticConsumer { : LangOpts(nullptr), OriginalInstance(false), State(State) {} public: - SDiagsWriter(raw_ostream *os, DiagnosticOptions *diags) - : LangOpts(nullptr), OriginalInstance(true), - State(new SharedState(os, diags)) - { + SDiagsWriter(std::unique_ptr os, DiagnosticOptions *diags) + : LangOpts(nullptr), OriginalInstance(true), + State(new SharedState(std::move(os), diags)) { EmitPreamble(); } @@ -187,8 +186,9 @@ private: /// \brief State that is shared among the various clones of this diagnostic /// consumer. struct SharedState : RefCountedBase { - SharedState(raw_ostream *os, DiagnosticOptions *diags) - : DiagOpts(diags), Stream(Buffer), OS(os), EmittedAnyDiagBlocks(false) { } + SharedState(std::unique_ptr os, DiagnosticOptions *diags) + : DiagOpts(diags), Stream(Buffer), OS(std::move(os)), + EmittedAnyDiagBlocks(false) {} /// \brief Diagnostic options. IntrusiveRefCntPtr DiagOpts; @@ -236,8 +236,9 @@ private: namespace clang { namespace serialized_diags { -DiagnosticConsumer *create(raw_ostream *OS, DiagnosticOptions *diags) { - return new SDiagsWriter(OS, diags); +DiagnosticConsumer *create(std::unique_ptr OS, + DiagnosticOptions *diags) { + return new SDiagsWriter(std::move(OS), diags); } } // end namespace serialized_diags } // end namespace clang