builtin-args-checking.c 1.8 KB

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