1 /* { dg-do compile } */
2 /* { dg-additional-options "-g" } */
3 
4 int a, b, c, d, i, j, q, *e, *h, *k, *r, **p = &e;
5 const int *f, **n = &f;
6 static int g;
7 
8 void
fn1(int p1)9 fn1 (int p1)
10 {
11   c = p1;
12 }
13 
14 static int *
fn2(int * p1,const int * p2)15 fn2 (int *p1, const int *p2)
16 {
17   if (g)
18     n = &p2;
19   *n = p2;
20   int o[245];
21   fn1 (o != p2);
22   return p1;
23 }
24 
25 static int *
fn3()26 fn3 ()
27 {
28   int s[54], *t = &s[0], u = 0, v = 1;
29   h = &v;
30   q = 1;
31   for (; q; q++)
32     {
33       int *w[] = { &u };
34       for (; v;)
35 	return *p;
36     }
37   *r = *t + b >= 0;
38   return *p;
39 }
40 
41 static int
fn4(int * p1)42 fn4 (int *p1)
43 {
44   int *l[2], **m[7];
45   for (; i < 1; i++)
46     for (; j < 1; j++)
47       m[i * 70] = &l[0];
48   k = fn3 ();
49   fn2 (0, p1);
50   if ((m[0] == 0) & a)
51     for (;;)
52       ;
53   return 0;
54 }
55 
56 int
main()57 main ()
58 {
59   fn4 (&d);
60   return 0;
61 }
62