aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lld/ELF/Driver.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp
index 7a48536..2e71282 100644
--- a/lld/ELF/Driver.cpp
+++ b/lld/ELF/Driver.cpp
@@ -239,8 +239,9 @@ void LinkerDriver::addFile(StringRef path, bool withLOption) {
readLinkerScript(mbref);
return;
case file_magic::archive: {
+ auto members = getArchiveMembers(mbref);
if (inWholeArchive) {
- for (const auto &p : getArchiveMembers(mbref)) {
+ for (const std::pair<MemoryBufferRef, uint64_t> &p : members) {
if (isBitcode(p.first))
files.push_back(make<BitcodeFile>(p.first, path, p.second, false));
else
@@ -249,7 +250,6 @@ void LinkerDriver::addFile(StringRef path, bool withLOption) {
return;
}
- auto members = getArchiveMembers(mbref);
archiveFiles.emplace_back(path, members.size());
// Handle archives and --start-lib/--end-lib using the same code path. This