1 /* { dg-do run } */
2 /* { dg-options "-O2" } */
3 #include <stdlib.h>
4 struct s {
5   unsigned short f: 16;
6   unsigned short y: 8;
7   unsigned short g: 2;
8   unsigned int x;
9 };
10 
11 void set (struct s*, int) __attribute__((noinline));
set(struct s * p,int flags)12 void set (struct s* p, int flags) {
13   p->g = flags << 1;
14 }
main()15 main() {
16   struct s foo = {0 , 0, 3, 0};
17   set (&foo, -1);
18   if (foo.g != 2)
19     abort();
20   return 0;
21 }
22