1  /* { dg-do compile } */
       2  /* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
       3  /* { dg-final { scan-assembler-not "\\\$f\[0-9\]+" } } */
       4  int a, c;
       5  int *b, *d;
       6  void
       7  fn1(int p1, int *p2(void *, void *), void *p3(void *, void *, int)) {
       8    int n = c;
       9    for (;;) {
      10      a = 1;
      11      for (; a < n;) {
      12        *d = p1 && p2(0, (int *) ((long)p1 + 1));
      13        p3(0, b + p1, 0);
      14      }
      15    }
      16  }