builtin-fp-unop.c 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. static void test_not_enough_args(void)
  2. {
  3. __builtin_isfinite();
  4. __builtin_isinf();
  5. __builtin_isinf_sign();
  6. __builtin_isnan();
  7. __builtin_isnormal();
  8. __builtin_signbit();
  9. }
  10. static void test_too_many_args(double v)
  11. {
  12. __builtin_isfinite(v, v);
  13. __builtin_isinf(v, v);
  14. __builtin_isinf_sign(v, v);
  15. __builtin_isnan(v, v);
  16. __builtin_isnormal(v, v);
  17. __builtin_signbit(v, v);
  18. }
  19. static void test_non_float(int v)
  20. {
  21. __builtin_isfinite(v);
  22. __builtin_isinf(v);
  23. __builtin_isinf_sign(v);
  24. __builtin_isnan(v);
  25. __builtin_isnormal(v);
  26. __builtin_signbit(v);
  27. }
  28. static void test_float(float v)
  29. {
  30. __builtin_isfinite(v);
  31. __builtin_isinf(v);
  32. __builtin_isinf_sign(v);
  33. __builtin_isnan(v);
  34. __builtin_isnormal(v);
  35. __builtin_signbit(v);
  36. }
  37. static void test_double(double v)
  38. {
  39. __builtin_isfinite(v);
  40. __builtin_isinf(v);
  41. __builtin_isinf_sign(v);
  42. __builtin_isnan(v);
  43. __builtin_isnormal(v);
  44. __builtin_signbit(v);
  45. }
  46. static void test_ldouble(long double v)
  47. {
  48. __builtin_isfinite(v);
  49. __builtin_isinf(v);
  50. __builtin_isinf_sign(v);
  51. __builtin_isnan(v);
  52. __builtin_isnormal(v);
  53. __builtin_signbit(v);
  54. }
  55. static void test_constant(void)
  56. {
  57. __builtin_isfinite(0.0);
  58. __builtin_isinf(0.0);
  59. __builtin_isinf_sign(0.0);
  60. __builtin_isnan(0.0);
  61. __builtin_isnormal(0.0);
  62. __builtin_signbit(0.0);
  63. }
  64. /*
  65. * check-name: builtin float-point unop
  66. * check-command: sparse -Wno-decl $file
  67. *
  68. * check-error-start
  69. builtin-fp-unop.c:3:27: error: not enough arguments for __builtin_isfinite
  70. builtin-fp-unop.c:4:24: error: not enough arguments for __builtin_isinf
  71. builtin-fp-unop.c:5:29: error: not enough arguments for __builtin_isinf_sign
  72. builtin-fp-unop.c:6:24: error: not enough arguments for __builtin_isnan
  73. builtin-fp-unop.c:7:27: error: not enough arguments for __builtin_isnormal
  74. builtin-fp-unop.c:8:26: error: not enough arguments for __builtin_signbit
  75. builtin-fp-unop.c:13:27: error: too many arguments for __builtin_isfinite
  76. builtin-fp-unop.c:14:24: error: too many arguments for __builtin_isinf
  77. builtin-fp-unop.c:15:29: error: too many arguments for __builtin_isinf_sign
  78. builtin-fp-unop.c:16:24: error: too many arguments for __builtin_isnan
  79. builtin-fp-unop.c:17:27: error: too many arguments for __builtin_isnormal
  80. builtin-fp-unop.c:18:26: error: too many arguments for __builtin_signbit
  81. builtin-fp-unop.c:23:27: error: non-floating-point argument in call to __builtin_isfinite()
  82. builtin-fp-unop.c:24:24: error: non-floating-point argument in call to __builtin_isinf()
  83. builtin-fp-unop.c:25:29: error: non-floating-point argument in call to __builtin_isinf_sign()
  84. builtin-fp-unop.c:26:24: error: non-floating-point argument in call to __builtin_isnan()
  85. builtin-fp-unop.c:27:27: error: non-floating-point argument in call to __builtin_isnormal()
  86. builtin-fp-unop.c:28:26: error: non-floating-point argument in call to __builtin_signbit()
  87. * check-error-end
  88. */