1*c85f09ccSJohn Levon extern int fun(void);
2*c85f09ccSJohn Levon extern int (*ptr)(void);
3*c85f09ccSJohn Levon 
inl(int * a)4*c85f09ccSJohn Levon static 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 Levon int 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