]> granicus.if.org Git - clang/commitdiff
Alignment of a va_arg must be at least as large as the ABI's minimum alignment.
authorAkira Hatanaka <ahatanak@gmail.com>
Fri, 12 Aug 2011 02:30:14 +0000 (02:30 +0000)
committerAkira Hatanaka <ahatanak@gmail.com>
Fri, 12 Aug 2011 02:30:14 +0000 (02:30 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137420 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/TargetInfo.cpp

index 87c07b4793ef4761238a455f67da0028e0d20382..cb5c6722f924cc957348e879939bb7704ca04e24 100644 (file)
@@ -3082,6 +3082,7 @@ llvm::Value* MipsABIInfo::EmitVAArg(llvm::Value *VAListAddr, QualType Ty,
     AddrTyped = Builder.CreateBitCast(Addr, PTy);  
 
   llvm::Value *AlignedAddr = Builder.CreateBitCast(AddrTyped, BP);
+  TypeAlign = std::max(TypeAlign, MinABIStackAlignInBytes);
   uint64_t Offset =
     llvm::RoundUpToAlignment(CGF.getContext().getTypeSize(Ty) / 8, TypeAlign);
   llvm::Value *NextAddr =