1*c85f09ccSJohn Levon extern int gfun(int);
sfun(int a)2*c85f09ccSJohn Levon static int sfun(int a) { return a; }
3*c85f09ccSJohn Levon 
4*c85f09ccSJohn Levon void usei(int *);
5*c85f09ccSJohn Levon void usef(int (*)(int));
6*c85f09ccSJohn Levon void usev(void *);
7*c85f09ccSJohn Levon 
8*c85f09ccSJohn Levon void foo(int *p, int a[5], int (*pfun)(int));
foo(int * p,int a[5],int (* pfun)(int))9*c85f09ccSJohn Levon void foo(int *p, int a[5], int (*pfun)(int))
10*c85f09ccSJohn Levon {
11*c85f09ccSJohn Levon 	extern int valg[5], valh[5], vali[5];
12*c85f09ccSJohn Levon 	static int vals[5], valt[5], valr[5];
13*c85f09ccSJohn Levon 	       int vala[5], valb[5], valc[5];
14*c85f09ccSJohn Levon 
15*c85f09ccSJohn Levon 	usei(p);
16*c85f09ccSJohn Levon 	usei(valg);
17*c85f09ccSJohn Levon 	usei(&valh[0]);
18*c85f09ccSJohn Levon 	usei(&vali[1]);
19*c85f09ccSJohn Levon 	usei(vals);
20*c85f09ccSJohn Levon 	usei(&valt[0]);
21*c85f09ccSJohn Levon 	usei(&valr[1]);
22*c85f09ccSJohn Levon 	usei(vala);
23*c85f09ccSJohn Levon 	usei(&valb[0]);
24*c85f09ccSJohn Levon 	usei(&valc[1]);
25*c85f09ccSJohn Levon 
26*c85f09ccSJohn Levon 	usef(pfun);
27*c85f09ccSJohn Levon 	usef(gfun);
28*c85f09ccSJohn Levon 	usef(&gfun);
29*c85f09ccSJohn Levon 	usef(sfun);
30*c85f09ccSJohn Levon 	usef(&sfun);
31*c85f09ccSJohn Levon 
32*c85f09ccSJohn Levon 	usev(pfun);
33*c85f09ccSJohn Levon 	usev(gfun);
34*c85f09ccSJohn Levon 	usev(&gfun);
35*c85f09ccSJohn Levon 	usev(sfun);
36*c85f09ccSJohn Levon 	usev(&sfun);
37*c85f09ccSJohn Levon }
38*c85f09ccSJohn Levon 
39*c85f09ccSJohn Levon /*
40*c85f09ccSJohn Levon  * check-name: pointer-param
41*c85f09ccSJohn Levon  * check-command: sparsec -c $file -o tmp.o
42*c85f09ccSJohn Levon  */
43