1/* { dg-do run } */
2
3extern void abort (void);
4
5int i, j, *pj = &j, **ppj = &pj;
6int x, *px = &x;
7
8short s, *ps = &s, k;
9
10unsigned short u, *pu = &u, **ppu = &pu;
11
12char c, *pc = &c;
13
14unsigned char v = 48;
15
16static int
17bar (int p)
18{
19  p = k;
20  *px = **ppu = i;
21  *ppj = &p;
22  if (**ppj)
23    *pj = p;
24  return p;
25}
26
27void __attribute__((noinline))
28foo ()
29{
30  for (; i <= 3; i++)
31    for (; j; j--);
32
33  u ^= bar (*pj);
34
35  for (k = 1; k >= 0; k--)
36    {
37      int l;
38      bar (0);
39      for (l = 1; l < 5; l++)
40	{
41	  int m;
42	  for (m = 6; m; m--)
43	    {
44	      v--;
45	      *ps = *pc;
46	    }
47	}
48    }
49}
50
51int
52main ()
53{
54  foo ();
55  if (v != 0)
56    abort ();
57  return 0;
58}
59