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