|  | #include <stdio.h> | 
|  | #include <tgmath.h> | 
|  |  | 
|  |  | 
|  | int | 
|  | main (void) | 
|  | { | 
|  | int retval = 0; | 
|  |  | 
|  | #define TEST(expr, res) \ | 
|  | if (sizeof (expr) != res)						      \ | 
|  | {									      \ | 
|  | printf ("sizeof(%s) == %zu, expected %zu\n", #expr,		      \ | 
|  | sizeof (expr), (size_t) (res));				      \ | 
|  | retval = 1;								      \ | 
|  | } | 
|  |  | 
|  | TEST (creal (1.0), sizeof (double)); | 
|  | TEST (creal (1.0 + 1.0i), sizeof (double)); | 
|  | TEST (creal (1.0l), sizeof (long double)); | 
|  | TEST (creal (1.0l + 1.0li), sizeof (long double)); | 
|  | TEST (creal (1.0f), sizeof (float)); | 
|  | TEST (creal (1.0f + 1.0fi), sizeof (float)); | 
|  |  | 
|  | TEST (cimag (1.0), sizeof (double)); | 
|  | TEST (cimag (1.0 + 1.0i), sizeof (double)); | 
|  | TEST (cimag (1.0l), sizeof (long double)); | 
|  | TEST (cimag (1.0l + 1.0li), sizeof (long double)); | 
|  | TEST (cimag (1.0f), sizeof (float)); | 
|  | TEST (cimag (1.0f + 1.0fi), sizeof (float)); | 
|  |  | 
|  | TEST (fabs (1.0), sizeof (double)); | 
|  | TEST (fabs (1.0 + 1.0i), sizeof (double)); | 
|  | TEST (fabs (1.0l), sizeof (long double)); | 
|  | TEST (fabs (1.0l + 1.0li), sizeof (long double)); | 
|  | TEST (fabs (1.0f), sizeof (float)); | 
|  | TEST (fabs (1.0f + 1.0fi), sizeof (float)); | 
|  |  | 
|  | TEST (carg (1.0), sizeof (double)); | 
|  | TEST (carg (1.0 + 1.0i), sizeof (double)); | 
|  | TEST (carg (1.0l), sizeof (long double)); | 
|  | TEST (carg (1.0l + 1.0li), sizeof (long double)); | 
|  | TEST (carg (1.0f), sizeof (float)); | 
|  | TEST (carg (1.0f + 1.0fi), sizeof (float)); | 
|  |  | 
|  | return retval; | 
|  | } |