1/* The bit-field below would have a problem if __INT_MAX__ is too
2   small.  */
3#if __INT_MAX__ < 2147483647
4int
5main (void)
6{
7  exit (0);
8}
9#else
10typedef struct {
11  unsigned b0:1, f1:17, b18:1, b19:1, b20:1, f2:11;
12} bf;
13
14typedef union {
15  bf b;
16  unsigned w;
17} bu;
18
19bu
20f(bu i)
21{
22  bu o = i;
23
24  if (o.b.b0)
25    o.b.b18 = 1,
26    o.b.b20 = 1;
27  else
28    o.b.b18 = 0,
29    o.b.b20 = 0;
30
31  return o;
32}
33
34main()
35{
36  bu a;
37  bu r;
38
39  a.w = 0x4000000;
40  a.b.b0 = 0;
41  r = f(a);
42  if (a.w != r.w)
43    abort();
44  exit(0);
45}
46#endif
47