diff --git a/llvm/lib/Transforms/TransformInternals.cpp b/llvm/lib/Transforms/TransformInternals.cpp index a68cf87b2be7..5117ce8dd56d 100644 --- a/llvm/lib/Transforms/TransformInternals.cpp +++ b/llvm/lib/Transforms/TransformInternals.cpp @@ -231,7 +231,7 @@ const Type *ConvertableToGEP(const Type *Ty, Value *OffsetVal, Indices.push_back(ConstantUInt::get(Type::UIntTy, Index)); Offset -= Index*ElSize; // Consume part of the offset - } else if (!isa(CompTy) || CompTy == Ty) { + } else if (isa(CompTy) || Indices.empty()) { // Must be indexing a small amount into the first cell of the array // Just index into element zero of the array here. //