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
      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  }