diff options
Diffstat (limited to 'lld/COFF/InputFiles.cpp')
-rw-r--r-- | lld/COFF/InputFiles.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/lld/COFF/InputFiles.cpp b/lld/COFF/InputFiles.cpp index 6fdb8e26535..bcf9a29d7a9 100644 --- a/lld/COFF/InputFiles.cpp +++ b/lld/COFF/InputFiles.cpp @@ -74,15 +74,14 @@ void ArchiveFile::parse() { // Returns a buffer pointing to a member file containing a given symbol. // This function is thread-safe. MemoryBufferRef ArchiveFile::getMember(const Archive::Symbol *Sym) { - auto ItOrErr = Sym->getMember(); - error(ItOrErr, - Twine("Could not get the member for symbol ") + Sym->getName()); - Archive::child_iterator It = *ItOrErr; + auto COrErr = Sym->getMember(); + error(COrErr, Twine("Could not get the member for symbol ") + Sym->getName()); + const Archive::Child &C = *COrErr; // Return an empty buffer if we have already returned the same buffer. - if (Seen[It->getChildOffset()].test_and_set()) + if (Seen[C.getChildOffset()].test_and_set()) return MemoryBufferRef(); - ErrorOr<MemoryBufferRef> Ret = It->getMemoryBufferRef(); + ErrorOr<MemoryBufferRef> Ret = C.getMemoryBufferRef(); error(Ret, Twine("Could not get the buffer for the member defining symbol ") + Sym->getName()); return *Ret; |