diff options
Diffstat (limited to 'llvm/lib/ProfileData/SampleProfWriter.cpp')
-rw-r--r-- | llvm/lib/ProfileData/SampleProfWriter.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/llvm/lib/ProfileData/SampleProfWriter.cpp b/llvm/lib/ProfileData/SampleProfWriter.cpp index 49d6fdbf4f7..85250452bd1 100644 --- a/llvm/lib/ProfileData/SampleProfWriter.cpp +++ b/llvm/lib/ProfileData/SampleProfWriter.cpp @@ -107,11 +107,10 @@ bool SampleProfileWriterBinary::write(StringRef FName, /// \param Format Encoding format for the profile file. /// /// \returns an error code indicating the status of the created writer. -std::error_code -SampleProfileWriter::create(StringRef Filename, - std::unique_ptr<SampleProfileWriter> &Writer, - SampleProfileFormat Format) { +ErrorOr<std::unique_ptr<SampleProfileWriter>> +SampleProfileWriter::create(StringRef Filename, SampleProfileFormat Format) { std::error_code EC; + std::unique_ptr<SampleProfileWriter> Writer; if (Format == SPF_Binary) Writer.reset(new SampleProfileWriterBinary(Filename, EC)); @@ -120,5 +119,8 @@ SampleProfileWriter::create(StringRef Filename, else EC = sampleprof_error::unrecognized_format; - return EC; + if (EC) + return EC; + + return std::move(Writer); } |