================ @@ -752,10 +780,13 @@ RValue ARMABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr, CharUnits SlotSize = CharUnits::fromQuantity(4); // Empty records are ignored for parameter passing purposes. - if (isEmptyRecord(getContext(), Ty, true)) + uint64_t Size = getContext().getTypeSize(Ty); + bool IsEmpty = isEmptyRecord(getContext(), Ty, true); + if ((IsEmpty || Size == 0) && shouldIgnoreEmptyArg(Ty)) return Slot.asRValue(); - CharUnits TySize = getContext().getTypeSizeInChars(Ty); + CharUnits TySize = + std::max(getContext().getTypeSizeInChars(Ty), CharUnits::fromQuantity(1)); ---------------- ostannard wrote:
This was left over from a previous version, I'll remove it. https://github.com/llvm/llvm-project/pull/124762 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits