1/* PR target/49163 */
2/* { dg-require-effective-target int32plus } */
3struct S1
4{
5 unsigned f0:18;
6 int f1;
7} __attribute__ ((packed));
8
9struct S2
10{
11  volatile long long f0;
12  int f1;
13};
14
15struct S1 s1;
16struct S2 s2;
17const struct S2 s2array[2][1] = { };
18
19struct S2 **sptr;
20
21extern int bar (char a, long long b, int * c, long long d, long long e);
22extern int baz (void);
23
24int i;
25int *ptr;
26
27void
28foo (int *arg)
29{
30  for (i = 0; i < 1; i = baz())
31    {
32      *arg = *(int *)sptr;
33      *ptr = bar (*arg, s2.f1, ptr,
34		  bar (s2array[1][0].f0, *arg, ptr, s1.f1, *ptr), *arg);
35    }
36}
37