This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
op.h: Add additional padding to struct opslab to ensure proper alignment
authorJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Fri, 19 Jun 2020 14:40:38 +0000 (16:40 +0200)
committerSawyer X <xsawyerx@cpan.org>
Sat, 20 Jun 2020 13:35:47 +0000 (16:35 +0300)
commita760468c9355bafaee57e94f13705c0ea925d9ca
treeabdf3941a75b5e6c0b8a72d8cd3c81d477db3c7b
parent727c4789c608a2a774171adeeeb1e5065009d397
op.h: Add additional padding to struct opslab to ensure proper alignment

On m68k, the natural alignment is 16 bits which causes the opslab_opslot
member of struct opslab to be aligned at a 16-bit offset. Other 32-bit
and 64-bit architectures have a natural alignment of at least 32 bits, so
the offset is always guaranteed to be at least 32-bit-aligned.

Fix this by adding additional padding bytes before the opslab_opslot
member, both for cases when PERL_DEBUG_READONLY_OPS defined and not
defined to ensure the offset of oplab_slots is always 32-bit-aligned.
On architectures which have a natural alignment of at least 32 bits,
the padding does not affect the alignment, offsets or struct size.
AUTHORS
op.h