================
@@ -1302,6 +1302,7 @@ ItaniumRecordLayoutBuilder::LayoutBase(const 
BaseSubobjectInfo *Base) {
     setSize(std::max(getSize(), Offset + Layout.getSize()));
 
   // Remember max struct/class alignment.
+  UnadjustedAlignment = std::max(UnadjustedAlignment, PreferredBaseAlign);
----------------
hvdijk wrote:

Tested that this doesn't affect Darwin and Windows, but for Windows, that 
surprises me. Clang matches MSVC for AArch64 in *not* following AAPCS64 on 
Windows, despite the fact that Microsoft's [Overview of ARM64 ABI conventions > 
Parameter 
Passing](https://learn.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=msvc-170#parameter-passing)
 says "For non-variadic functions, the Windows ABI follows the rules specified 
by ARM for parameter passing. These rules are excerpted directly from the 
Procedure Call Standard for the AArch64 Architecture: [...]"

https://github.com/llvm/llvm-project/pull/135564
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to