https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78804
--- Comment #21 from Oleg Endo <olegendo at gcc dot gnu.org> --- (In reply to Ian Lance Taylor from comment #18) > How could the size of that struct possibly be 12? Can you figure out what > is causing that to happen? There are exactly 64 bits specified, and the > fields are all packed. The size ought to be 8. I don't see what could > cause it to be 12. > > Also, I should have said that you need to compile with -m64bit-doubles. Yeah, right. D'uh, sorry. With -m64bit-doubles it prints 12 0 2ec 0 But doesn't matter. I already found out that the size is 12 bytes in comment #8 above. Packing the whole struct helps, as mentioned above. I don't know why it was decided to use this ABI. Maybe some legacy stuff. RX has those issues. But I don't think it matters in this case.