perl5 icon indicating copy to clipboard operation
perl5 copied to clipboard

bodies_by_type[SVt_PVNV]: handle __float128 NV alignment on 32-bit

Open tonycoz opened this issue 1 year ago • 7 comments

On i686 systems with -msse __float128 requires 16 byte alignment, but for XPVNV bodies the hack used by new_body_allocated() to avoid allocating the unused xmg_stash and xmg_u fields means that the base of the XPVNV body ends up mis-aligned on 32-bit systems.

One 64-bit systems the combined size of those fields is 16-bytes so the modified pointer is still properly aligned.

Fixes #22577

perldelta something like the following in Selected bug fixes:

Builds with C<-msse> and quadmath on 32-bit x86 systems would crash with a misaligned access early in the build. [GH #22577]


  • [x] This set of changes requires a perldelta entry, and it is included.
  • [ ] This set of changes requires a perldelta entry, and I need help writing it.
  • [ ] This set of changes does not require a perldelta entry.

tonycoz avatar Sep 19 '24 01:09 tonycoz