1 /* { dg-do run } */ 2 /* { dg-options "-O2" } */ 3 4 extern void abort (void); 5 int a, b, *c = &b, d = -1, e, f, *g, *h = &f, **i = &g, j; 6 7 unsigned int foo(unsigned int p)8foo (unsigned int p) 9 { 10 return p == 0 ? 0 : 1 / p; 11 } 12 13 static int * bar()14bar () 15 { 16 *c = *h = foo (d) & (-9 < d); 17 for (e = 0; e; e++) 18 ; 19 return 0; 20 } 21 22 int main()23main () 24 { 25 for (; j; j++) 26 for (;; a--) 27 ; 28 *i = bar (); 29 if (f != 0) 30 abort (); 31 return 0; 32 } 33