https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101586

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
It is related to the weird FIELD_DECLs the C++ FE creates for the virtual
inheritence, there is e.g. a FIELD_DECL with B type (where B has 16 byte size
and includes the 8 byte virtual pointer and 1 byte A), but the size of the
FIELD_DECL is just 8 bytes, which is something the clear padding code didn't
expect to see.

BTW, if you are using the clear padding code for -ftrivial*, unless it is
clear_type_padding_in_mask, it can error e.g. on flexible array members, which
is fine for the builtin, but probably not fine for -ftrivial*.

Reply via email to