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  */