From 321053a7ca17cc26d1711448890d4d047c11f413 Mon Sep 17 00:00:00 2001 From: Hal Finkel Date: Thu, 15 Dec 2016 03:30:40 +0000 Subject: Fix iterator-invalidation issue Inserting a new key into a DenseMap potentially invalidates iterators into that map. Trying to fix an issue from r289755 triggering this assertion: Assertion `isHandleInSync() && "invalid iterator access!"' failed. llvm-svn: 289757 --- llvm/lib/Analysis/ScalarEvolution.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'llvm/lib/Analysis/ScalarEvolution.cpp') diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp index 7939c9ee7dc..3a99f2a2157 100644 --- a/llvm/lib/Analysis/ScalarEvolution.cpp +++ b/llvm/lib/Analysis/ScalarEvolution.cpp @@ -3529,7 +3529,9 @@ void ScalarEvolution::addAffectedFromOperands(const SCEV *S) { if (AMI == AffectedMap.end()) continue; - AffectedMap[S].insert(AMI->second.begin(), AMI->second.end()); + auto &ISet = AffectedMap[S]; + AMI = AffectedMap.find(Op); + ISet.insert(AMI->second.begin(), AMI->second.end()); } } -- cgit v1.2.3