tst-CMPLX.c 1.3 KB

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