perl5
perl5 copied to clipboard
bodies_by_type[SVt_PVNV]: handle __float128 NV alignment on 32-bit
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.