1*c85f09ccSJohn Levon extern int fun(void); 2*c85f09ccSJohn Levon extern int (*ptr)(void); 3*c85f09ccSJohn Levon inl(int * a)4*c85f09ccSJohn Levonstatic inline int inl(int *a) 5*c85f09ccSJohn Levon { 6*c85f09ccSJohn Levon return *a + 1; 7*c85f09ccSJohn Levon } 8*c85f09ccSJohn Levon 9*c85f09ccSJohn Levon 10*c85f09ccSJohn Levon int test(void); test(void)11*c85f09ccSJohn Levonint test(void) 12*c85f09ccSJohn Levon { 13*c85f09ccSJohn Levon unsigned int s = 0; 14*c85f09ccSJohn Levon 15*c85f09ccSJohn Levon // OK 16*c85f09ccSJohn Levon s += sizeof &fun; 17*c85f09ccSJohn Levon s += sizeof ptr; 18*c85f09ccSJohn Levon s += sizeof &ptr; 19*c85f09ccSJohn Levon s += sizeof &inl; 20*c85f09ccSJohn Levon 21*c85f09ccSJohn Levon // KO 22*c85f09ccSJohn Levon s += sizeof fun; 23*c85f09ccSJohn Levon s += sizeof *fun; 24*c85f09ccSJohn Levon 25*c85f09ccSJohn Levon s += sizeof *ptr; 26*c85f09ccSJohn Levon 27*c85f09ccSJohn Levon s += sizeof inl; 28*c85f09ccSJohn Levon s += sizeof *inl; 29*c85f09ccSJohn Levon 30*c85f09ccSJohn Levon s += sizeof __builtin_trap; 31*c85f09ccSJohn Levon s += sizeof *__builtin_trap; 32*c85f09ccSJohn Levon 33*c85f09ccSJohn Levon return s; 34*c85f09ccSJohn Levon } 35*c85f09ccSJohn Levon 36*c85f09ccSJohn Levon /* 37*c85f09ccSJohn Levon * check-name: sizeof-function 38*c85f09ccSJohn Levon * check-command: sparse -Wpointer-arith -Wno-decl $file 39*c85f09ccSJohn Levon * 40*c85f09ccSJohn Levon * check-error-start 41*c85f09ccSJohn Levon sizeof-function.c:22:14: warning: expression using sizeof on a function 42*c85f09ccSJohn Levon sizeof-function.c:23:14: warning: expression using sizeof on a function 43*c85f09ccSJohn Levon sizeof-function.c:25:14: warning: expression using sizeof on a function 44*c85f09ccSJohn Levon sizeof-function.c:27:14: warning: expression using sizeof on a function 45*c85f09ccSJohn Levon sizeof-function.c:28:14: warning: expression using sizeof on a function 46*c85f09ccSJohn Levon sizeof-function.c:30:14: warning: expression using sizeof on a function 47*c85f09ccSJohn Levon sizeof-function.c:31:14: warning: expression using sizeof on a function 48*c85f09ccSJohn Levon * check-error-end 49*c85f09ccSJohn Levon */ 50