------- Comment #2 from rguenth at gcc dot gnu dot org 2009-07-24 15:44 ------- long double is 12 bytes, C requires arrays to pack dense, thus a 12 byte long double has to be aligned to 4 bytes at least in arrays.
GCC 3.3 to 4.5 do sizeof/offset: o_d=12/08 o_ld=16/04 o_l=08/04 o_ll=12/08 sizeof/offset: o_d=16/08 o_ld=16/04 o_l=08/04 o_ll=16/08 while 2.95 did sizeof/offset: o_d=12/04 o_ld=16/04 o_l=08/04 o_ll=12/04 sizeof/offset: o_d=16/08 o_ld=24/08 o_l=08/04 o_ll=16/08 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40845