Patch, Version 4: Problem solved

DJ Delorie
Tue May 4 10:46:00 GMT 1999

The alignment of A changes from 4 bytes (sizeof(int)) to 8 bytes
(sizeof(double)), so the alignment of B (which contains A) must also
change from 4 to 8.  The size of B is increased to a multiple of the
alignment so that each element of an array of such objects is properly
aligned.  IMHO, this is correct and expected behavior.

If MS wants them "less aligned" you'll have to use gcc's alignment
directives to reduce the alignment of that double to 4.

More information about the Cygwin-developers mailing list