diff options
-rw-r--r-- | lib/CodeGen/TargetInfo.cpp | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/lib/CodeGen/TargetInfo.cpp b/lib/CodeGen/TargetInfo.cpp index ee959198d9..ee49f75dc2 100644 --- a/lib/CodeGen/TargetInfo.cpp +++ b/lib/CodeGen/TargetInfo.cpp @@ -2347,14 +2347,7 @@ ABIArgInfo ARMABIInfo::classifyArgumentType(QualType Ty) const { if (getContext().getTypeSizeInChars(Ty) <= CharUnits::fromQuantity(32)) { ElemTy = llvm::Type::getInt32Ty(getVMContext()); SizeRegs = (getContext().getTypeSize(Ty) + 31) / 32; - llvm::SmallVector<const llvm::Type*, 8> LLVMFields; - LLVMFields.push_back(llvm::ArrayType::get(ElemTy, SizeRegs)); - const llvm::Type* STy = llvm::StructType::get(getVMContext(), LLVMFields, - true); - return ABIArgInfo::getDirect(STy); - } - - if (getABIKind() == ARMABIInfo::APCS) { + } else if (getABIKind() == ARMABIInfo::APCS) { // Initial ARM ByVal support is APCS-only. return ABIArgInfo::getIndirect(0, /*ByVal=*/true); } else { @@ -2363,12 +2356,12 @@ ABIArgInfo ARMABIInfo::classifyArgumentType(QualType Ty) const { // byval. ElemTy = llvm::Type::getInt64Ty(getVMContext()); SizeRegs = (getContext().getTypeSize(Ty) + 63) / 64; - llvm::SmallVector<const llvm::Type*, 8> LLVMFields; - LLVMFields.push_back(llvm::ArrayType::get(ElemTy, SizeRegs)); - const llvm::Type* STy = llvm::StructType::get(getVMContext(), LLVMFields, - true); - return ABIArgInfo::getDirect(STy); } + + const llvm::Type* LLVMField[1] = { llvm::ArrayType::get(ElemTy, SizeRegs) }; + const llvm::Type* STy = llvm::StructType::get(getVMContext(), LLVMField, + true); + return ABIArgInfo::getDirect(STy); } static bool isIntegerLikeType(QualType Ty, ASTContext &Context, |