attribute aligned(4) ignored
Ian Lance Taylor
ian@airs.com
Tue Jul 26 03:22:00 GMT 2005
Chris Lattner <sabre@nondot.org> writes:
> Hi All, I'm trying to reduce the alignment of the double in this
> structure to 4 bytes (from 8) on Darwin. The goal of doing this is to
> reduce the structure to 12 bytes in size. Here is my testcase:
>
> struct Test {
> double D __attribute__((aligned(4))); // only 4 bytes, not 8!
> int X;
> };
>
> int X() {
> return sizeof(struct Test); // Should return 12, not 16.
> }
>
> Despite my attempt above, the structure is still 16 bytes in size, due
> to the tail padding required to pad the structure to ensure 8-byte
> alignment.
>
> Does anyone know how to reduce the alignment of the double,
> eliminating the tail padding?
How about
double D __attribute__((aligned(4), packed));
Ian
More information about the Gcc-help
mailing list