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