Dinakar and I fixed a bug where we were trying to get the initializer of
authorJohn Criswell <criswell@uiuc.edu>
Thu, 17 Jul 2003 19:06:55 +0000 (19:06 +0000)
committerJohn Criswell <criswell@uiuc.edu>
Thu, 17 Jul 2003 19:06:55 +0000 (19:06 +0000)
an external constant.  Since external constants don't have initializers, we
were failing on an assert() call in llvm/GlobalVariable.h.

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

lib/Transforms/Scalar/InstructionCombining.cpp

index 5d04d7737ffe2872ed28e0beaa73978b6f417316..bb8f97be3b92f4b810fcb854ca3f6d27b9999d0f 100644 (file)
@@ -1302,7 +1302,7 @@ Instruction *InstCombiner::visitLoadInst(LoadInst &LI) {
     if (CE->getOpcode() == Instruction::GetElementPtr)
       if (ConstantPointerRef *G=dyn_cast<ConstantPointerRef>(CE->getOperand(0)))
         if (GlobalVariable *GV = dyn_cast<GlobalVariable>(G->getValue()))
-          if (GV->isConstant())
+          if ((GV->isConstant()) && (!(GV->isExternal())))
             if (Constant *V = GetGEPGlobalInitializer(GV->getInitializer(), CE))
               return ReplaceInstUsesWith(LI, V);
   return 0;