https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109444
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- There is padding bytes for Foo because the alignment of Foo needs to be the same alignment as a pointer.
pinskia at gcc dot gnu.org via Gcc-bugs Thu, 06 Apr 2023 16:37:35 -0700
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109444
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- There is padding bytes for Foo because the alignment of Foo needs to be the same alignment as a pointer.