summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Archive/ArchiveReader.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2012-01-23 05:07:16 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2012-01-23 05:07:16 +0000
commit624e30894afbfa5d3370804bc0678a3c20d85502 (patch)
tree31bde42694a93cf592f20ed28705520c2d17482e /llvm/lib/Archive/ArchiveReader.cpp
parentaebe36046d887b5a8e8ed3afe8d76acefb070102 (diff)
downloadbcm5719-llvm-624e30894afbfa5d3370804bc0678a3c20d85502.tar.gz
bcm5719-llvm-624e30894afbfa5d3370804bc0678a3c20d85502.zip
Avoid using an invalidated iterator.
llvm-svn: 148681
Diffstat (limited to 'llvm/lib/Archive/ArchiveReader.cpp')
-rw-r--r--llvm/lib/Archive/ArchiveReader.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Archive/ArchiveReader.cpp b/llvm/lib/Archive/ArchiveReader.cpp
index 0c89baa0d7d..a78c0f59bc0 100644
--- a/llvm/lib/Archive/ArchiveReader.cpp
+++ b/llvm/lib/Archive/ArchiveReader.cpp
@@ -572,7 +572,11 @@ Archive::findModulesDefiningSymbols(std::set<std::string>& symbols,
SmallPtrSet<Module*, 16> Added;
for (std::set<std::string>::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)
OpenPOWER on IntegriCloud