Attempt to fix ASAN failure in a MemorySSA test.
authorGeorge Burgess IV <george.burgess.iv@gmail.com>
Wed, 2 Mar 2016 02:35:04 +0000 (02:35 +0000)
committerGeorge Burgess IV <george.burgess.iv@gmail.com>
Wed, 2 Mar 2016 02:35:04 +0000 (02:35 +0000)
llvm-svn: 262452

llvm/lib/Transforms/Utils/MemorySSA.cpp

index 858ebdcf6b8955685d6addfe724b0ea312f5cac7..8013b4a4c7baa3c266e40a99041ed60c32bd27c6 100644 (file)
@@ -463,11 +463,11 @@ void MemorySSA::removeFromLookups(MemoryAccess *MA) {
   }
   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) {