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