1 /* PR middle-end/55750 */
2 
3 extern void abort (void);
4 
5 struct S
6 {
7   int m : 1;
8   int n : 7;
9 } arr[2];
10 
11 __attribute__((noinline, noclone)) void
foo(unsigned i)12 foo (unsigned i)
13 {
14   arr[i].n++;
15 }
16 
17 int
main()18 main ()
19 {
20   arr[0].m = -1;
21   arr[0].n = (1 << 6) - 1;
22   arr[1].m = 0;
23   arr[1].n = -1;
24   foo (0);
25   foo (1);
26   if (arr[0].m != -1 || arr[0].n != -(1 << 6) || arr[1].m != 0 || arr[1].n != 0)
27     abort ();
28   return 0;
29 }
30