1
0
mirror of https://github.com/c64scene-ar/llvm-6502.git synced 2025-04-11 00:39:36 +00:00

InstrProf: Use ErrorOr for IndexedInstrProfReader::create (NFC)

The other InstrProfReader::create factories were updated to return
ErrorOr in r221120, and it's odd for these APIs not to match.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229433 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Justin Bogner 2015-02-16 21:28:58 +00:00
parent 4031c08c87
commit e8e3eb8397
3 changed files with 13 additions and 7 deletions
include/llvm/ProfileData
lib/ProfileData

@ -292,8 +292,8 @@ public:
uint64_t getMaximumFunctionCount() { return MaxFunctionCount; }
/// Factory method to create an indexed reader.
static std::error_code
create(std::string Path, std::unique_ptr<IndexedInstrProfReader> &Result);
static ErrorOr<std::unique_ptr<IndexedInstrProfReader>>
create(std::string Path);
};
} // end namespace llvm

@ -223,9 +223,10 @@ CoverageMapping::load(StringRef ObjectFilename, StringRef ProfileFilename) {
ObjectFileCoverageMappingReader CoverageReader(CounterMappingBuff.get());
if (auto EC = CoverageReader.readHeader())
return EC;
std::unique_ptr<IndexedInstrProfReader> ProfileReader;
if (auto EC = IndexedInstrProfReader::create(ProfileFilename, ProfileReader))
auto ProfileReaderOrErr = IndexedInstrProfReader::create(ProfileFilename);
if (auto EC = ProfileReaderOrErr.getError())
return EC;
auto ProfileReader = std::move(ProfileReaderOrErr.get());
return load(CoverageReader, *ProfileReader);
}

@ -64,21 +64,26 @@ InstrProfReader::create(std::string Path) {
return std::move(Result);
}
std::error_code IndexedInstrProfReader::create(
std::string Path, std::unique_ptr<IndexedInstrProfReader> &Result) {
ErrorOr<std::unique_ptr<IndexedInstrProfReader>>
IndexedInstrProfReader::create(std::string Path) {
// Set up the buffer to read.
auto BufferOrError = setupMemoryBuffer(Path);
if (std::error_code EC = BufferOrError.getError())
return EC;
auto Buffer = std::move(BufferOrError.get());
std::unique_ptr<IndexedInstrProfReader> Result;
// Create the reader.
if (!IndexedInstrProfReader::hasFormat(*Buffer))
return instrprof_error::bad_magic;
Result.reset(new IndexedInstrProfReader(std::move(Buffer)));
// Initialize the reader and return the result.
return initializeReader(*Result);
if (std::error_code EC = initializeReader(*Result))
return EC;
return std::move(Result);
}
void InstrProfIterator::Increment() {