================ @@ -3122,9 +3122,25 @@ Address X86_64ABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr, CGF.Builder.CreateStore(V, CGF.Builder.CreateStructGEP(Tmp, 1)); RegAddr = Tmp.withElementType(LTy); - } else if (neededInt) { - RegAddr = Address(CGF.Builder.CreateGEP(CGF.Int8Ty, RegSaveArea, gp_offset), - LTy, CharUnits::fromQuantity(8)); + } else if (neededInt || neededSSE == 1) { + llvm::Value *Offset = neededInt ? gp_offset : fp_offset; + uint64_t Alignment = neededInt ? 8 : 16; + Address Tmp = Address::invalid(); + if (AI.isDirect() && AI.getDirectOffset() == 8) { + Tmp = CGF.CreateMemTemp(Ty); + llvm::StructType *ST = cast<llvm::StructType>(LTy); ---------------- efriedma-quic wrote:
ST is also wrong... please write a few more testcases. https://github.com/llvm/llvm-project/pull/90389 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits