1 /* { dg-do run } */
2 /* { dg-options "-O" } */
3 
4 #pragma pack(1)
5 struct S0
6 {
7 #if __SIZEOF_INT >= 4
8   int f0:24;
9 #else
10   __INT32_TYPE__ f0:24;
11 #endif
12 };
13 
14 struct S1
15 {
16   int f1;
17 } a;
18 
19 int b, c;
20 
21 char
fn1(struct S1 p1)22 fn1 (struct S1 p1)
23 {
24   return 0;
25 }
26 
27 int
main()28 main ()
29 {
30   c = fn1 (a);
31   if (b)
32     {
33       struct S0 f[3][9] =
34 	{ { { 0 }, { 0 }, { 1 }, { 1 }, { 0 }, { 0 }, { 0 }, { 1 }, { 1 } },
35 	  { { 0 }, { 0 }, { 1 }, { 1 }, { 0 }, { 0 }, { 0 }, { 1 }, { 1 } },
36 	  { { 0 }, { 0 }, { 1 }, { 1 }, { 0 }, { 0 }, { 0 }, { 1 }, { 1 } }
37 	};
38       b = f[1][8].f0;
39     }
40   struct S0 g[3][9] =
41 	{ { { 0 }, { 0 }, { 1 }, { 1 }, { 0 }, { 0 }, { 0 }, { 1 }, { 1 } },
42 	  { { 0 }, { 0 }, { 1 }, { 1 }, { 0 }, { 0 }, { 0 }, { 1 }, { 1 } },
43 	  { { 0 }, { 0 }, { 1 }, { 1 }, { 0 }, { 0 }, { 0 }, { 1 }, { 1 } }
44 	};
45 
46   if (g[1][8].f0 != 1)
47     __builtin_abort ();
48 
49   return 0;
50 }
51