1#include <complex.h>
2#include <stdio.h>
3
4
5static int
6do_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 ("\
19CMPLX (" #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);
48 C (CMPLXL, long double);
49#endif
50
51 return result;
52}
53
54#define TEST_FUNCTION do_test ()
55#include "../test-skeleton.c"
56

source code of glibc/math/tst-CMPLX.c