2009-07-17 Richard Guenther <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.dg / torture / pr37868.c
blob50fa903008fb272fb5ff9b364b969f1688ea6d16
1 /* { dg-do run } */
2 /* { dg-options "-fno-strict-aliasing" } */
3 /* { dg-skip-if "unaligned access" { sparc*-*-* } "*" "" } */
5 extern void abort (void);
7 struct X {
8 unsigned char pad : 4;
9 unsigned int a : 32;
10 unsigned int b : 24;
11 unsigned int c : 6;
12 } __attribute__((packed));
14 int main (void)
16 struct X x;
17 unsigned int bad_bits;
19 x.pad = -1;
20 x.a = -1;
21 x.b = -1;
22 x.c = -1;
24 bad_bits = ((unsigned int)-1) ^ *(1+(unsigned int *) &x);
25 if (bad_bits != 0)
26 abort ();
27 return 0;