1 /* { dg-do run } */
2 /* { dg-options "-fno-toplevel-reorder" } */
3 /* { dg-require-effective-target int32plus } */
4 
5 extern void abort (void);
6 
7 struct S
8 {
9   signed a : 26;
10   signed b : 16;
11   signed c : 10;
12   volatile signed d : 14;
13 };
14 
15 static struct S e = { 0, 0, 0, 1 };
16 static int f = 1;
17 
18 void __attribute__((noinline))
foo(void)19 foo (void)
20 {
21   e.d = 0;
22   f = 2;
23 }
24 
25 int
main()26 main ()
27 {
28   if (e.a || e.b || e.c || e.d != 1 || f != 1)
29     abort ();
30   foo ();
31   if (e.a || e.b || e.c || e.d || f != 2)
32     abort ();
33   return 0;
34 }
35