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

--- Comment #12 from Jason Merrill <jason at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #11)
> Trying clang++ it agrees with g++ that both c8 and c7 are 32-bytes, contain
> 2 vtable pointers at offsets 0 and 16 into the objects and that c8.c is at
> offset 9 and c7.c is at offset 8.  The big question is what is the byte at
> offset 8 into c8, is that padding, or something else?

It's padding: It's the byte allocated for the empty C1 base of C7, which can no
longer share its address with the virtual C6 base because the C6 base is laid
out  in C8 and we don't consider the C1 byte to be tail padding in that
context.

BTW, are you aware of -fdump-lang-class?

Reply via email to