https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83487
--- Comment #9 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Well, this seems to fix it. --- a/gcc/stor-layout.c +++ b/gcc/stor-layout.c @@ -1882,6 +1882,12 @@ finalize_type_size (tree type) /* Handle empty records as per the x86-64 psABI. */ TYPE_EMPTY_P (type) = targetm.calls.empty_record_p (type); + if (TYPE_EMPTY_P (type)) + { + /* Ignore alignment on empty types. */ + TYPE_USER_ALIGN (type) = false; + SET_TYPE_ALIGN (type, 1); + } } /* Return a new underlying object for a bitfield started with FIELD. */