Attempt to fix ASAN failure in a MemorySSA test.
llvm-svn: 262452
diff --git a/llvm/lib/Transforms/Utils/MemorySSA.cpp b/llvm/lib/Transforms/Utils/MemorySSA.cpp
index 858ebdc..8013b4a 100644
--- a/llvm/lib/Transforms/Utils/MemorySSA.cpp
+++ b/llvm/lib/Transforms/Utils/MemorySSA.cpp
@@ -463,11 +463,11 @@
}
ValueToMemoryAccess.erase(MemoryInst);
- auto &Accesses = PerBlockAccesses.find(MA->getBlock())->second;
+ auto AccessIt = PerBlockAccesses.find(MA->getBlock());
+ std::unique_ptr<AccessListType> &Accesses = AccessIt->second;
Accesses->erase(MA);
- if (Accesses->empty()) {
- PerBlockAccesses.erase(MA->getBlock());
- }
+ if (Accesses->empty())
+ PerBlockAccesses.erase(AccessIt);
}
void MemorySSA::removeMemoryAccess(MemoryAccess *MA) {