1 /* { dg-do run } */
2 /* { dg-additional-options "-ftree-pre -ftree-partial-pre" } */
3 
4 extern void abort (void);
5 
6 int b, c, d, f, g, h, i, j[6], *l = &b, *m, n, *o, r;
7 char k;
8 
9 static int
foo()10 foo ()
11 {
12   char *p = &k;
13 
14   for (; d; d++)
15     if (i)
16       h = 0;
17     else
18       h = c || (r = 0);
19 
20   for (f = 0; f < 2; f++)
21     {
22       unsigned int q;
23       *l = 0;
24       if (n)
25 	*m = g;
26       if (g)
27 	o = 0;
28       for (q = -8; q >= 5; q++)
29 	(*p)--;
30     }
31 
32   return 0;
33 }
34 
35 int
main()36 main ()
37 {
38   foo ();
39   if (j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[0]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ^ (k & 15)] != 0)
40     abort ();
41   return 0;
42 }
43