1/* PR middle-end/57344 */
2/* { dg-require-effective-target int32plus } */
3
4struct __attribute__((packed)) S
5{
6  int a : 27;
7#if __SIZEOF_INT__ * __CHAR_BIT__ >= 32
8  int b : 22;
9#else
10  int b : 13;
11#endif
12  char c;
13  int : 0;
14} s[2];
15int i;
16
17__attribute__((noinline, noclone)) void
18foo (int x)
19{
20  if (x != -3161)
21    __builtin_abort ();
22  asm volatile ("" : : : "memory");
23}
24
25int
26main ()
27{
28  struct S t = { 0, -3161L };
29  s[1] = t;
30  for (; i < 1; i++)
31    foo (s[1].b);
32  return 0;
33}
34