1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -fcompare-debug" } */
       3  
       4  struct S { int a; };
       5  struct T { int b, c; } a;
       6  long b;
       7  int c, d;
       8  void bar (int, int);
       9  void baz (void *, int);
      10  
      11  void
      12  foo (struct S *x, int y, int z, void *f, int *p, struct T *e)
      13  {
      14    while (x)
      15      {
      16        baz (f, &d > p);
      17        if (z & 1)
      18          bar (f > (void *) &f, z);
      19      }
      20    if (c)
      21      {
      22        asm ("" : "+m" (a) : "i" (0));
      23        y--;
      24      }
      25    if (e->b == e->c)
      26      c = y;
      27    y--;
      28  }