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