Fix runtime error on Windows.
I believe the original code is valid, but on Windows it failed with an
assertion error saying "Expression: vector iterator is not decrementable."
Don't use rbegin and rend to workaround that error.
llvm-svn: 226706
diff --git a/lld/lib/Core/Resolver.cpp b/lld/lib/Core/Resolver.cpp
index 71d5113..63c2b31 100644
--- a/lld/lib/Core/Resolver.cpp
+++ b/lld/lib/Core/Resolver.cpp
@@ -276,8 +276,8 @@
// Make a map of Symbol -> ArchiveFile.
void Resolver::makePreloadArchiveMap() {
std::vector<std::unique_ptr<Node>> &nodes = _context.getNodes();
- for (auto it = nodes.rbegin(), e = nodes.rend(); it != e; ++it)
- if (auto *fnode = dyn_cast<FileNode>(it->get()))
+ for (int i = nodes.size() - 1; i >= 0; --i)
+ if (auto *fnode = dyn_cast<FileNode>(nodes[i].get()))
if (auto *archive = dyn_cast<ArchiveLibraryFile>(fnode->getFile()))
for (StringRef sym : archive->getDefinedSymbols())
_archiveMap[sym] = archive;