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:
parent
4031c08c87
commit
e8e3eb8397
@ -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() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user