1 // { dg-do run { target i?86-*-linux* i?86-*-freebsd* } }
2 // { dg-options "-malign-double" }
3 // Origin: Alex Samuel <samuel@codesourcery.com>
5 /* Test the size and alignment of fundamental C types for compliance
18 return (unsigned) & ((S *) 0)->object_;
21 /* Computes the alignment, in bytes, of TYPE. */
23 #define alignof(type) (alignmentof<type> ())
30 if (sizeof (char) != 1)
32 if (alignof (char) != 1)
34 if (sizeof (signed char) != 1)
36 if (alignof (signed char) != 1)
38 if (sizeof (unsigned char) != 1)
40 if (alignof (unsigned char) != 1)
42 if (sizeof (short) != 2)
44 if (alignof (short) != 2)
46 if (sizeof (signed short) != 2)
48 if (alignof (signed short) != 2)
50 if (sizeof (unsigned short) != 2)
52 if (alignof (unsigned short) != 2)
54 if (sizeof (int) != 4)
56 if (alignof (int) != 4)
58 if (sizeof (signed int) != 4)
60 if (alignof (signed int) != 4)
62 if (sizeof (unsigned int) != 4)
64 if (alignof (unsigned int) != 4)
66 if (sizeof (enum A) != 4)
68 if (alignof (enum A) != 4)
70 #ifdef HAVE_IA64_TYPES
71 if (sizeof (__int64) != 8)
73 if (alignof (__int64) != 8)
75 if (sizeof (signed __int64) != 8)
77 if (alignof (signed ___int64) != 8)
79 if (sizeof (unsigned __int64) != 8)
81 if (alignof (unsigned __int64) != 8)
83 if (sizeof (__int128) != 16)
85 if (alignof (__int128) != 16)
87 if (sizeof (signed __int128) != 16)
89 if (alignof (signed ___int128) != 16)
91 if (sizeof (unsigned __int128) != 16)
93 if (alignof (unsigned ___int128) != 16)
95 #endif /* HAVE_IA64_TYPES */
96 if (sizeof (void *) != 4)
98 if (alignof (void *) != 4)
100 if (sizeof (void (*) ()) != 4)
102 if (alignof (void (*) ()) != 4)
104 if (sizeof (float) != 4)
106 if (alignof (float) != 4)
108 if (sizeof (double) != 8)
110 if (alignof (double) != 8)
112 #ifdef HAVE_IA64_TYPES
113 if (sizeof (__float80) != 16)
115 if (alignof (__float80) != 16)
117 if (sizeof (__float128) != 16)
119 if (alignof (__float128) != 16)
121 #endif /* HAVE_IA64_TYPES */