diff options
Diffstat (limited to 'llvm/lib/Target/Mips/Mips16HardFloat.cpp')
-rw-r--r-- | llvm/lib/Target/Mips/Mips16HardFloat.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/llvm/lib/Target/Mips/Mips16HardFloat.cpp b/llvm/lib/Target/Mips/Mips16HardFloat.cpp index c310d9491af..f237bb6d400 100644 --- a/llvm/lib/Target/Mips/Mips16HardFloat.cpp +++ b/llvm/lib/Target/Mips/Mips16HardFloat.cpp @@ -74,16 +74,18 @@ static FPReturnVariant whichFPReturnVariant(Type *T) { return FRet; case Type::DoubleTyID: return DRet; - case Type::StructTyID: - if (T->getStructNumElements() != 2) + case Type::StructTyID: { + StructType *ST = cast<StructType>(T); + if (ST->getNumElements() != 2) break; - if ((T->getContainedType(0)->isFloatTy()) && - (T->getContainedType(1)->isFloatTy())) + if ((ST->getElementType(0)->isFloatTy()) && + (ST->getElementType(1)->isFloatTy())) return CFRet; - if ((T->getContainedType(0)->isDoubleTy()) && - (T->getContainedType(1)->isDoubleTy())) + if ((ST->getElementType(0)->isDoubleTy()) && + (ST->getElementType(1)->isDoubleTy())) return CDRet; break; + } default: break; } |