1  /* { dg-do compile } */
       2  /* { dg-options "-O3 -march=haswell" } */
       3  
       4  struct _GPart {
       5    int *g;
       6  };
       7  static int b, d, e;
       8  int *c, *f, *g;
       9  int a;
      10  
      11  int fn2(int, int);
      12  
      13  int fn1(int p1) {
      14    int h = fn2(p1, (int)(long)&e);
      15    for (; d < e; d++)
      16      if (f[d] != a)
      17        h += g ? g[f[d]] : 1;
      18    return h;
      19  }
      20  
      21  int main() {
      22    struct _GPart *i;
      23    for (; b < (int)(long)(i->g); b++)
      24      c[b] = fn1((int)(long)i->g);
      25  }