Don't crash on multiple return value with no obvious inserted value.
authorNick Lewycky <nicholas@mxc.ca>
Sat, 6 Jun 2009 23:13:08 +0000 (23:13 +0000)
committerNick Lewycky <nicholas@mxc.ca>
Sat, 6 Jun 2009 23:13:08 +0000 (23:13 +0000)
Fixes PR4314.

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

lib/Transforms/Scalar/SCCP.cpp

index d73519c04e352a67ec385498c10ab49b353d28cb..3deee547729159ae3870b96761b1dfecc6721b5c 100644 (file)
@@ -639,8 +639,8 @@ void SCCPSolver::visitReturnInst(ReturnInst &I) {
       DenseMap<std::pair<Function*, unsigned>, LatticeVal>::iterator
         It = TrackedMultipleRetVals.find(std::make_pair(F, i));
       if (It == TrackedMultipleRetVals.end()) break;
-      Value *Val = FindInsertedValue(I.getOperand(0), i);
-      mergeInValue(It->second, F, getValueState(Val));
+      if (Value *Val = FindInsertedValue(I.getOperand(0), i))
+        mergeInValue(It->second, F, getValueState(Val));
     }
   }
 }