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