/* { dg-do compile } */ /* { dg-options "-O2" } */ #define assert(x) if (!(x)) __builtin_abort () int a, b, c, d, e, f, g; int fn1 () { int *h = &c; for (; c < 1; c++) { int *i = &a, *k = &a; f = 0; if (b) return 0; if (*h) { int **j = &i; *j = 0; d = 0; } else g = e = 0; if (*h) { int **l = &k; *l = &g; } d &= *h; assert (k == &a || k); assert (i); } return 0; } int main () { fn1 (); return 0; }