https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103095
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- AMD x86-64 psABI says that variables with array type larger than 15 bytes must be aligned to 16 byte boundaries. There is already an option: https://gcc.gnu.org/onlinedocs/gcc-11.2.0/gcc/x86-Options.html#index-malign-data-1 -malign-data=type Control how GCC aligns variables. Supported values for type are ‘compat’ uses increased alignment value compatible uses GCC 4.8 and earlier, ‘abi’ uses alignment value as specified by the psABI, and ‘cacheline’ uses increased alignment value to match the cache line size. ‘compat’ is the default. You just need to supply -mabi-data=abi in this case if you want to disable over aligning of things. Other than that there is nothing to be done in GCC; it is up to the linker and assembler to do the layout really. The option was added in GCC 5 by r5-5887.