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