]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/testsuite/gcc.target/i386/bitfield1.c
remove support for the interix target
[thirdparty/gcc.git] / gcc / testsuite / gcc.target / i386 / bitfield1.c
CommitLineData
ad9335eb 1// Test for bitfield alignment in structs on IA-32
ac3b8691 2// { dg-do run }
dbbb299a 3// { dg-require-effective-target ia32 }
ad9335eb 4// { dg-options "-O2" }
ee2499b4 5// { dg-options "-mno-align-double -mno-ms-bitfields" { target i?86-*-cygwin* i?86-*-mingw*} }
ad9335eb
JJ
6
7extern void abort (void);
8extern void exit (int);
9
10struct A
11{
12 char a;
13 long long b : 61;
14 char c;
15} a, a4[4];
16
17struct B
18{
19 char d;
20 struct A e;
21 char f;
22} b;
23
24struct C
25{
26 char g;
27 union U
28 {
29 char u1;
30 long long u2;
31 long long u3 : 64;
32 } h;
33 char i;
34} c;
35
36int main (void)
37{
38 if (&a.c - &a.a != 12)
39 abort ();
40 if (sizeof (a) != 16)
41 abort ();
42 if (sizeof (a4) != 4 * 16)
43 abort ();
44 if (sizeof (b) != 2 * 4 + 16)
45 abort ();
46 if (__alignof__ (b.e) != 4)
47 abort ();
48 if (&c.i - &c.g != 12)
49 abort ();
50 if (sizeof (c) != 16)
51 abort ();
52 if (__alignof__ (c.h) != 4)
53 abort ();
54 exit (0);
55}