+++ /dev/null
-/* Test for bitfield alignment in structs and unions. */
-/* { dg-do run } */
-/* { dg-options "-O2" } */
-
-extern void abort (void);
-extern void exit (int);
-
-typedef long la __attribute__((aligned (8)));
-
-struct A
-{
- char a;
- union UA
- {
- char x;
- la y : 6;
- } b;
- char c;
-} a;
-
-struct B
-{
- char a;
- union UB
- {
- char x;
- long y : 6 __attribute__((aligned (8)));
- } b;
- char c;
-} b;
-
-struct C
-{
- char a;
- struct UC
- {
- la y : 6;
- } b;
- char c;
-} c;
-
-struct D
-{
- char a;
- struct UD
- {
- long y : 6 __attribute__((aligned (8)));
- } b;
- char c;
-} d;
-
-int main (void)
-{
- if (sizeof (a) != sizeof (b))
- abort ();
- if (sizeof (a) != sizeof (c))
- abort ();
- if (sizeof (a) != sizeof (d))
- abort ();
- if ((&a.c - &a.a) != (&b.c - &b.a))
- abort ();
- if ((&a.c - &a.a) != (&c.c - &c.a))
- abort ();
- if ((&a.c - &a.a) != (&d.c - &d.a))
- abort ();
- exit (0);
-}