/* PR target/49163 */ /* { dg-require-effective-target int32plus } */ struct S1 { unsigned f0:18; int f1; } __attribute__ ((packed)); struct S2 { volatile long long f0; int f1; }; struct S1 s1; struct S2 s2; const struct S2 s2array[2][1] = { }; struct S2 **sptr; extern int bar (char a, long long b, int * c, long long d, long long e); extern int baz (void); int i; int *ptr; void foo (int *arg) { for (i = 0; i < 1; i = baz()) { *arg = *(int *)sptr; *ptr = bar (*arg, s2.f1, ptr, bar (s2array[1][0].f0, *arg, ptr, s1.f1, *ptr), *arg); } }