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)8 foo (unsigned int p)
9 {
10   return p == 0 ? 0 : 1 / p;
11 }
12 
13 static int *
bar()14 bar ()
15 {
16   *c = *h = foo (d) & (-9 < d);
17   for (e = 0; e; e++)
18     ;
19   return 0;
20 }
21 
22 int
main()23 main ()
24 {
25   for (; j; j++)
26     for (;; a--)
27       ;
28   *i = bar ();
29   if (f != 0)
30     abort ();
31   return 0;
32 }
33