]>
Commit | Line | Data |
---|---|---|
1d5a644a | 1 | #include <complex.h> |
65dc3b75 | 2 | #include <stdio.h> |
1d5a644a UD |
3 | |
4 | ||
5 | static int | |
6 | do_test (void) | |
7 | { | |
8 | int result = 0; | |
9 | ||
10 | #ifdef CMPLX | |
11 | size_t s; | |
12 | ||
13 | #define T(f, r, i, t) \ | |
14 | do { \ | |
15 | s = sizeof (f (r, i)); \ | |
16 | if (s != sizeof (complex t)) \ | |
17 | { \ | |
18 | printf ("\ | |
19 | CMPLX (" #r ", " #i ") does not produce complex " #t ": %zu\n", s); \ | |
20 | result = 1; \ | |
21 | } \ | |
22 | } while (0) | |
23 | ||
24 | #define C(f, t) \ | |
25 | do { \ | |
26 | T (f, 0.0f, 0.0f, t); \ | |
27 | T (f, 0.0f, 0.0, t); \ | |
28 | T (f, 0.0f, 0.0L, t); \ | |
29 | T (f, 0.0f, 0.0f, t); \ | |
30 | T (f, 0.0, 0.0f, t); \ | |
31 | T (f, 0.0L, 0.0f, t); \ | |
32 | T (f, 0.0, 0.0f, t); \ | |
33 | T (f, 0.0, 0.0, t); \ | |
34 | T (f, 0.0, 0.0L, t); \ | |
35 | T (f, 0.0f, 0.0, t); \ | |
36 | T (f, 0.0, 0.0, t); \ | |
37 | T (f, 0.0L, 0.0, t); \ | |
38 | T (f, 0.0L, 0.0f, t); \ | |
39 | T (f, 0.0L, 0.0, t); \ | |
40 | T (f, 0.0L, 0.0L, t); \ | |
41 | T (f, 0.0f, 0.0L, t); \ | |
42 | T (f, 0.0, 0.0L, t); \ | |
43 | T (f, 0.0L, 0.0L, t); \ | |
44 | } while (0) | |
45 | ||
46 | C (CMPLXF, float); | |
47 | C (CMPLX, double); | |
1d5a644a | 48 | C (CMPLXL, long double); |
1d5a644a UD |
49 | #endif |
50 | ||
51 | return result; | |
52 | } | |
53 | ||
54 | #define TEST_FUNCTION do_test () | |
55 | #include "../test-skeleton.c" |