1 extern int gfun(int); 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)); 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