diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index 0e6c1b1f2dd..6961806bcb7 100644 --- a/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/lib/Transforms/Scalar/InstructionCombining.cpp @@ -5187,7 +5187,8 @@ Instruction *InstCombiner::visitCastInst(CastInst &CI) { Constant *ZeroUInt = Constant::getNullValue(Type::UIntTy); unsigned NumZeros = 0; while (SrcTy != DstTy && - isa(SrcTy) && !isa(SrcTy)) { + isa(SrcTy) && !isa(SrcTy) && + SrcTy->getNumContainedTypes() /* not "{}" */) { SrcTy = cast(SrcTy)->getTypeAtIndex(ZeroUInt); ++NumZeros; }