]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/testsuite/gcc.dg/bf-ms-layout-5.c
Update copyright years.
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / bf-ms-layout-5.c
CommitLineData
ba64c7b8
JJ
1/* PR target/52991 */
2/* { dg-do run { target i?86-*-* x86_64-*-* } } */
3
4struct S {
5 int a : 2;
6 __attribute__((aligned (8))) int b : 2;
7 int c : 28;
8 __attribute__((aligned (16))) int d : 2;
9 int e : 30;
10} __attribute__((ms_struct));
11
12struct S s;
13
14int
15main ()
16{
17 int i;
18 if (sizeof (s) != 32)
19 __builtin_abort ();
20 s.a = -1;
21 for (i = 0; i < 32; ++i)
22 if (((char *) &s)[i] != (i ? 0 : 3))
23 __builtin_abort ();
24 s.a = 0;
25 s.b = -1;
26 for (i = 0; i < 32; ++i)
27 if (((char *) &s)[i] != (i ? 0 : 12))
28 __builtin_abort ();
29 s.b = 0;
30 s.c = -1;
31 for (i = 0; i < 32; ++i)
32 if (((signed char *) &s)[i] != (i > 3 ? 0 : (i ? -1 : -16)))
33 __builtin_abort ();
34 s.c = 0;
35 s.d = -1;
36 for (i = 0; i < 32; ++i)
37 if (((signed char *) &s)[i] != (i == 16 ? 3 : 0))
38 __builtin_abort ();
39 s.d = 0;
40 s.e = -1;
41 for (i = 0; i < 32; ++i)
42 if (((signed char *) &s)[i] != ((i < 16 || i > 19) ? 0 : (i == 16 ? -4 : -1)))
43 __builtin_abort ();
44 return 0;
45}