summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/ScalarEvolution.cpp
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2016-12-15 03:30:40 +0000
committerHal Finkel <hfinkel@anl.gov>2016-12-15 03:30:40 +0000
commit321053a7ca17cc26d1711448890d4d047c11f413 (patch)
tree18b6133f3862af3352b6c8e473e07609e9a43952 /llvm/lib/Analysis/ScalarEvolution.cpp
parent3ca4a6bcf11d6b4ac34fed640f3ab23995ec1877 (diff)
downloadbcm5719-llvm-321053a7ca17cc26d1711448890d4d047c11f413.tar.gz
bcm5719-llvm-321053a7ca17cc26d1711448890d4d047c11f413.zip
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
Diffstat (limited to 'llvm/lib/Analysis/ScalarEvolution.cpp')
-rw-r--r--llvm/lib/Analysis/ScalarEvolution.cpp4
1 files changed, 3 insertions, 1 deletions
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());
}
}
OpenPOWER on IntegriCloud