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