summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-11-05 14:34:56 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-11-05 14:34:56 +0000
commit543f29d1a93cd75f76433692bd514c33c2055f97 (patch)
tree4b3bb0a13479d7ce63d383143e4f63ed623f8c64
parent537b6090d108231b2254ed7975be77733d6d33b8 (diff)
downloadbcm5719-llvm-543f29d1a93cd75f76433692bd514c33c2055f97.tar.gz
bcm5719-llvm-543f29d1a93cd75f76433692bd514c33c2055f97.zip
Don't implicitly construct an Archive::child_iterator.
llvm-svn: 252166
-rw-r--r--lld/COFF/InputFiles.cpp11
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;
OpenPOWER on IntegriCloud