bad_nbr_args_cte(int a)1 static unsigned int bad_nbr_args_cte(int a)
2 {
3 	int r = 0;
4 	r |= __builtin_bswap16();
5 	r |= __builtin_bswap16(1, 2);
6 	r |= __builtin_bswap32();
7 	r |= __builtin_bswap32(1, 2);
8 	r |= __builtin_bswap64();
9 	r |= __builtin_bswap64(1, 2);
10 	return r;
11 }
12 
bad_nbr_args_var(int a,int b)13 static unsigned int bad_nbr_args_var(int a, int b)
14 {
15 	int r = 0;
16 	r |= __builtin_bswap16();
17 	r |= __builtin_bswap16(a, b);
18 	r |= __builtin_bswap32();
19 	r |= __builtin_bswap32(a, b);
20 	r |= __builtin_bswap64();
21 	r |= __builtin_bswap64(a, b);
22 	return r;
23 }
24 
25 /*
26  * check-name: builtin-args-checking
27  * check-command: sparse $file
28  * check-description: Check that the arguments checking is done
29  *                    for expanded builtins with a prototype.
30  *
31  * check-error-start
32 builtin-args-checking.c:4:31: error: not enough arguments for function __builtin_bswap16
33 builtin-args-checking.c:5:31: error: too many arguments for function __builtin_bswap16
34 builtin-args-checking.c:6:31: error: not enough arguments for function __builtin_bswap32
35 builtin-args-checking.c:7:31: error: too many arguments for function __builtin_bswap32
36 builtin-args-checking.c:8:31: error: not enough arguments for function __builtin_bswap64
37 builtin-args-checking.c:9:31: error: too many arguments for function __builtin_bswap64
38 builtin-args-checking.c:16:31: error: not enough arguments for function __builtin_bswap16
39 builtin-args-checking.c:17:31: error: too many arguments for function __builtin_bswap16
40 builtin-args-checking.c:18:31: error: not enough arguments for function __builtin_bswap32
41 builtin-args-checking.c:19:31: error: too many arguments for function __builtin_bswap32
42 builtin-args-checking.c:20:31: error: not enough arguments for function __builtin_bswap64
43 builtin-args-checking.c:21:31: error: too many arguments for function __builtin_bswap64
44  * check-error-end
45  */
46