From 19450241e5ca3f679251c29f4926bb5f12ed535f Mon Sep 17 00:00:00 2001
From: Chris Lattner <sabre@nondot.org>
Date: Tue, 13 Nov 2007 21:46:23 +0000
Subject: [PATCH] Fix the regression on Transforms/GlobalOpt/deadglobal-2.ll
 from my patch on friday.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44068 91177308-0d34-0410-b5e6-96231b3b80d8
---
 lib/Transforms/IPO/GlobalOpt.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/Transforms/IPO/GlobalOpt.cpp b/lib/Transforms/IPO/GlobalOpt.cpp
index 76f04efda61..f574ed46063 100644
--- a/lib/Transforms/IPO/GlobalOpt.cpp
+++ b/lib/Transforms/IPO/GlobalOpt.cpp
@@ -345,14 +345,14 @@ static bool CleanupConstantGlobalUsers(Value *V, Constant *Init) {
       // Do not transform "gepinst (gep constexpr (GV))" here, because forming
       // "gepconstexpr (gep constexpr (GV))" will cause the two gep's to fold
       // and will invalidate our notion of what Init is.
+      Constant *SubInit = 0;
       if (!isa<ConstantExpr>(GEP->getOperand(0))) {
         ConstantExpr *CE = 
           dyn_cast_or_null<ConstantExpr>(ConstantFoldInstruction(GEP));
         if (Init && CE && CE->getOpcode() == Instruction::GetElementPtr)
-          if (Constant *SubInit = 
-              ConstantFoldLoadThroughGEPConstantExpr(Init, CE))
-            Changed |= CleanupConstantGlobalUsers(GEP, SubInit);
+          SubInit = ConstantFoldLoadThroughGEPConstantExpr(Init, CE);
       }
+      Changed |= CleanupConstantGlobalUsers(GEP, SubInit);
 
       if (GEP->use_empty()) {
         GEP->eraseFromParent();