diff options
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp | 4 | 
1 files changed, 2 insertions, 2 deletions
| diff --git a/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp b/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp index 0ec095749f9..e248413f438 100644 --- a/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp +++ b/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp @@ -1084,12 +1084,12 @@ static bool isHomogeneousAggregate(const Type *T, unsigned &NumElts,                                     const Type *&EltTy) {    if (const ArrayType *AT = dyn_cast<ArrayType>(T)) {      NumElts = AT->getNumElements(); -    EltTy = AT->getElementType(); +    EltTy = (NumElts == 0 ? 0 : AT->getElementType());      return true;    }    if (const StructType *ST = dyn_cast<StructType>(T)) {      NumElts = ST->getNumContainedTypes(); -    EltTy = ST->getContainedType(0); +    EltTy = (NumElts == 0 ? 0 : ST->getContainedType(0));      for (unsigned n = 1; n < NumElts; ++n) {        if (ST->getContainedType(n) != EltTy)          return false; | 

