diff --git a/lib/Archive/ArchiveReader.cpp b/lib/Archive/ArchiveReader.cpp index 6f5b9d36edf..c0f0d1569bd 100644 --- a/lib/Archive/ArchiveReader.cpp +++ b/lib/Archive/ArchiveReader.cpp @@ -472,10 +472,8 @@ Archive::findModulesDefiningSymbols(std::set& symbols, result.insert(mp); // Remove the symbol now that its been resolved, being careful to - // not invalidate our iterator. - std::set::iterator save = I; - ++I; - symbols.erase(save); + // post-increment the iterator. + symbols.erase(I++); } else { ++I; } diff --git a/lib/Bytecode/Archive/ArchiveReader.cpp b/lib/Bytecode/Archive/ArchiveReader.cpp index 6f5b9d36edf..c0f0d1569bd 100644 --- a/lib/Bytecode/Archive/ArchiveReader.cpp +++ b/lib/Bytecode/Archive/ArchiveReader.cpp @@ -472,10 +472,8 @@ Archive::findModulesDefiningSymbols(std::set& symbols, result.insert(mp); // Remove the symbol now that its been resolved, being careful to - // not invalidate our iterator. - std::set::iterator save = I; - ++I; - symbols.erase(save); + // post-increment the iterator. + symbols.erase(I++); } else { ++I; }