LVI: Fix use-of-uninitialized-value after r294463
authorVitaly Buka <vitalybuka@google.com>
Thu, 9 Feb 2017 09:28:05 +0000 (09:28 +0000)
committerVitaly Buka <vitalybuka@google.com>
Thu, 9 Feb 2017 09:28:05 +0000 (09:28 +0000)
BlockValueStack can be reallocated making reference e invalid.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294572 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/LazyValueInfo.cpp

index e8f2d536c194efdb2d89be149c4da21b319909bb..877fc055358eb39c9355dd4cfbf2df61ca9b8c78 100644 (file)
@@ -677,7 +677,7 @@ void LazyValueInfoImpl::solve() {
       BlockValueStack.clear();
       return;
     }
-    std::pair<BasicBlock *, Value *> &e = BlockValueStack.back();
+    std::pair<BasicBlock *, Value *> e = BlockValueStack.back();
     assert(BlockValueSet.count(e) && "Stack value should be in BlockValueSet!");
 
     if (solveBlockValue(e.second, e.first)) {