From f9a30ddcc0d3b33ef4bb2eff6f43557974c39e03 Mon Sep 17 00:00:00 2001 From: Rui Ueyama Date: Wed, 21 Jan 2015 22:16:17 +0000 Subject: [PATCH] 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 --- lld/lib/Core/Resolver.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 @@ File *Resolver::getFile(int &index) { // Make a map of Symbol -> ArchiveFile. void Resolver::makePreloadArchiveMap() { std::vector> &nodes = _context.getNodes(); - for (auto it = nodes.rbegin(), e = nodes.rend(); it != e; ++it) - if (auto *fnode = dyn_cast(it->get())) + for (int i = nodes.size() - 1; i >= 0; --i) + if (auto *fnode = dyn_cast(nodes[i].get())) if (auto *archive = dyn_cast(fnode->getFile())) for (StringRef sym : archive->getDefinedSymbols()) _archiveMap[sym] = archive; -- 2.7.4