From: Rafael Espindola Date: Mon, 23 Jan 2012 05:07:16 +0000 (+0000) Subject: Avoid using an invalidated iterator. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=4254df306268edb7f47a77eecd1f8b59f1b17fe0;p=oota-llvm.git Avoid using an invalidated iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148681 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Archive/ArchiveReader.cpp b/lib/Archive/ArchiveReader.cpp index 0c89baa0d7d..a78c0f59bc0 100644 --- a/lib/Archive/ArchiveReader.cpp +++ b/lib/Archive/ArchiveReader.cpp @@ -572,7 +572,11 @@ Archive::findModulesDefiningSymbols(std::set& symbols, SmallPtrSet Added; for (std::set::iterator I=symbols.begin(), - E=symbols.end(); I != E; ++I) { + Next = I, + E=symbols.end(); I != E; I = Next) { + // Increment Next before we invalidate it. + ++Next; + // See if this symbol exists Module* m = findModuleDefiningSymbol(*I,error); if (!m)