https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106873
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #1) > Which I think is what you are missing is that the ABI is layed out this way. The reason why it is layout this way is for alignment reasons. In many ABIs, the alignment of short is 2 bytes; the natural alignment.