1extern int gfun(int);
2static int sfun(int a) { return a; }
3
4void usei(int *);
5void usef(int (*)(int));
6void usev(void *);
7
8void foo(int *p, int a[5], int (*pfun)(int));
9void 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