[clang] [Clang] Reuse tail-padding for more types that are not POD for the purpose of layout (PR #90462)

Mital Ashok via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 29 05:39:21 PDT 2024


MitalAshok wrote:

Some choices I've made:

 * Removed `TargetCXXABI::TailPaddingUseRules` and `TargetCXXABI::getTailPaddingUseRules()`. Now there are 5 distinct tail padding rules (7 if you count tail padding rules that change with `-fclang-abi-compat=18.0`), and it was only used in the `mustSkipTailPadding` function anyways.
  * Ignored a comment that the Clang WebAssembley ABI should ignore bit-field sizes. I don't think that was actually true, but it didn't matter before because we didn't check bit-field sizes.
   * `AppleARM64`/`WatchOS`/`iOS` don't skip tail padding for types with potentially-overlapping members as well as the oversized bit-fields they were documented to ignore.
   * `XL` and `Fuchsia` are also unchanged, for no particular reason other than I could not find what the ABI for C++ layout was supposed to be

https://github.com/llvm/llvm-project/pull/90462


More information about the cfe-commits mailing list