fix a nasty iterator invalidation bug from my conversion from
authorChris Lattner <sabre@nondot.org>
Mon, 2 Nov 2009 23:25:39 +0000 (23:25 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 2 Nov 2009 23:25:39 +0000 (23:25 +0000)
std::map to DenseMap, exposed on release llvm-gcc bootstrap.

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

lib/Transforms/Scalar/SCCP.cpp

index c11380abf5e90fca4d2a86d9032af1c0f14c759f..31ad26774acc24860f63d5629fd8213dbae969f4 100644 (file)
@@ -1079,8 +1079,7 @@ void SCCPSolver::visitShuffleVectorInst(ShuffleVectorInst &I) {
 // can turn this into a getelementptr ConstantExpr.
 //
 void SCCPSolver::visitGetElementPtrInst(GetElementPtrInst &I) {
-  LatticeVal &IV = ValueState[&I];
-  if (IV.isOverdefined()) return;
+  if (ValueState[&I].isOverdefined()) return;
 
   SmallVector<Constant*, 8> Operands;
   Operands.reserve(I.getNumOperands());
@@ -1091,7 +1090,7 @@ void SCCPSolver::visitGetElementPtrInst(GetElementPtrInst &I) {
       return;  // Operands are not resolved yet.
     
     if (State.isOverdefined())
-      return markOverdefined(IV, &I);
+      return markOverdefined(&I);
 
     assert(State.isConstant() && "Unknown state!");
     Operands.push_back(State.getConstant());