diff options
author | Lang Hames <lhames@gmail.com> | 2016-07-14 20:44:27 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2016-07-14 20:44:27 +0000 |
commit | 69f4902ba685a49e80a8d39998477ee72ca9d53b (patch) | |
tree | d83bb7494fe00b6141adcde74fd9c7184936e02e /llvm/lib/Object/Archive.cpp | |
parent | 6f73588fb9d1d9f555abd9ef3b44e92ff2d2a1b1 (diff) | |
download | bcm5719-llvm-69f4902ba685a49e80a8d39998477ee72ca9d53b.tar.gz bcm5719-llvm-69f4902ba685a49e80a8d39998477ee72ca9d53b.zip |
[Object] Change Archive::findSym to return an Expected<Optional<Child>>.
As suggested by Rafael in review of D22079 - this was accidentally left out of
the final commit (r275316).
llvm-svn: 275469
Diffstat (limited to 'llvm/lib/Object/Archive.cpp')
-rw-r--r-- | llvm/lib/Object/Archive.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/llvm/lib/Object/Archive.cpp b/llvm/lib/Object/Archive.cpp index 4827e58f5d3..daf301e2e7e 100644 --- a/llvm/lib/Object/Archive.cpp +++ b/llvm/lib/Object/Archive.cpp @@ -667,23 +667,20 @@ uint32_t Archive::getNumberOfSymbols() const { return read32le(buf); } -Archive::child_iterator Archive::findSym(Error &Err, StringRef name) const { +Expected<Optional<Archive::Child>> Archive::findSym(StringRef name) const { Archive::symbol_iterator bs = symbol_begin(); Archive::symbol_iterator es = symbol_end(); for (; bs != es; ++bs) { StringRef SymName = bs->getName(); if (SymName == name) { - if (auto MemberOrErr = bs->getMember()) { - return child_iterator(*MemberOrErr, &Err); - } else { - ErrorAsOutParameter ErrAsOutParam(Err); - Err = errorCodeToError(MemberOrErr.getError()); - return child_end(); - } + if (auto MemberOrErr = bs->getMember()) + return Child(*MemberOrErr); + else + return errorCodeToError(MemberOrErr.getError()); } } - return child_end(); + return Optional<Child>(); } bool Archive::hasSymbolTable() const { return !SymbolTable.empty(); } |