1 /* This test tests complex conjugate and passing/returning of 2 complex parameter. */ 3 4 #include <stdlib.h> 5 #include <stdio.h> 6 7 int err; 8 9 #define TEST(TYPE, FUNC) \ 10 __complex__ TYPE \ 11 ctest_ ## FUNC (__complex__ TYPE x) \ 12 { \ 13 __complex__ TYPE res; \ 14 \ 15 res = ~x; \ 16 \ 17 return res; \ 18 } \ 19 \ 20 void \ 21 test_ ## FUNC (void) \ 22 { \ 23 __complex__ TYPE res, x; \ 24 \ 25 x = 1.0 + 2.0i; \ 26 \ 27 res = ctest_ ## FUNC (x); \ 28 \ 29 if (res != 1.0 - 2.0i) \ 30 { \ 31 printf ("test_" #FUNC " failed\n"); \ 32 ++err; \ 33 } \ 34 } 35 36 TEST(float,float)37TEST(float, float) 38 TEST(double, double) 39 TEST(long double, long_double) 40 TEST(int, int) 41 TEST(long int, long_int) 42 43 int 44 main (void) 45 { 46 47 err = 0; 48 49 test_float (); 50 test_double (); 51 test_long_double (); 52 test_int (); 53 test_long_int (); 54 55 if (err != 0) 56 abort (); 57 58 return 0; 59 } 60