diff options
author | Hal Finkel <hfinkel@anl.gov> | 2016-12-15 03:30:40 +0000 |
---|---|---|
committer | Hal Finkel <hfinkel@anl.gov> | 2016-12-15 03:30:40 +0000 |
commit | 321053a7ca17cc26d1711448890d4d047c11f413 (patch) | |
tree | 18b6133f3862af3352b6c8e473e07609e9a43952 /llvm/lib/Analysis/ScalarEvolution.cpp | |
parent | 3ca4a6bcf11d6b4ac34fed640f3ab23995ec1877 (diff) | |
download | bcm5719-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.cpp | 4 |
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()); } } |