diff options
-rw-r--r-- | polly/lib/Analysis/ScopInfo.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/polly/lib/Analysis/ScopInfo.cpp b/polly/lib/Analysis/ScopInfo.cpp index 8ffd6a3c415..81edb824c05 100644 --- a/polly/lib/Analysis/ScopInfo.cpp +++ b/polly/lib/Analysis/ScopInfo.cpp @@ -4856,13 +4856,15 @@ void Scop::removeAccessData(MemoryAccess *Access) { ValueDefAccs.erase(Access->getAccessValue()); } else if (Access->isOriginalValueKind() && Access->isRead()) { auto &Uses = ValueUseAccs[Access->getScopArrayInfo()]; - std::remove(Uses.begin(), Uses.end(), Access); + auto NewEnd = std::remove(Uses.begin(), Uses.end(), Access); + Uses.erase(NewEnd, Uses.end()); } else if (Access->isOriginalPHIKind() && Access->isRead()) { PHINode *PHI = cast<PHINode>(Access->getAccessInstruction()); PHIReadAccs.erase(PHI); } else if (Access->isOriginalAnyPHIKind() && Access->isWrite()) { auto &Incomings = PHIIncomingAccs[Access->getScopArrayInfo()]; - std::remove(Incomings.begin(), Incomings.end(), Access); + auto NewEnd = std::remove(Incomings.begin(), Incomings.end(), Access); + Incomings.erase(NewEnd, Incomings.end()); } } |