mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-31 22:10:34 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <complex.h>
 | |
| #include <stdio.h>
 | |
| 
 | |
| 
 | |
| static int
 | |
| do_test (void)
 | |
| {
 | |
|   int result = 0;
 | |
| 
 | |
| #ifdef CMPLX
 | |
|   size_t s;
 | |
| 
 | |
| #define T(f, r, i, t)							      \
 | |
|   do {									      \
 | |
|     s = sizeof (f (r, i));						      \
 | |
|     if (s != sizeof (complex t))					      \
 | |
|       {									      \
 | |
| 	printf ("\
 | |
| CMPLX (" #r ", " #i ") does not produce complex " #t ": %zu\n", s);	      \
 | |
| 	result = 1;							      \
 | |
|       }									      \
 | |
|   } while (0)
 | |
| 
 | |
| #define C(f, t)								      \
 | |
|   do {									      \
 | |
|     T (f, 0.0f, 0.0f, t);						      \
 | |
|     T (f, 0.0f, 0.0, t);						      \
 | |
|     T (f, 0.0f, 0.0L, t);						      \
 | |
|     T (f, 0.0f, 0.0f, t);						      \
 | |
|     T (f, 0.0, 0.0f, t);						      \
 | |
|     T (f, 0.0L, 0.0f, t);						      \
 | |
|     T (f, 0.0, 0.0f, t);						      \
 | |
|     T (f, 0.0, 0.0, t);							      \
 | |
|     T (f, 0.0, 0.0L, t);						      \
 | |
|     T (f, 0.0f, 0.0, t);						      \
 | |
|     T (f, 0.0, 0.0, t);							      \
 | |
|     T (f, 0.0L, 0.0, t);						      \
 | |
|     T (f, 0.0L, 0.0f, t);						      \
 | |
|     T (f, 0.0L, 0.0, t);						      \
 | |
|     T (f, 0.0L, 0.0L, t);						      \
 | |
|     T (f, 0.0f, 0.0L, t);						      \
 | |
|     T (f, 0.0, 0.0L, t);						      \
 | |
|     T (f, 0.0L, 0.0L, t);						      \
 | |
|   } while (0)
 | |
| 
 | |
|   C (CMPLXF, float);
 | |
|   C (CMPLX, double);
 | |
|   C (CMPLXL, long double);
 | |
| #endif
 | |
| 
 | |
|   return result;
 | |
| }
 | |
| 
 | |
| #define TEST_FUNCTION do_test ()
 | |
| #include "../test-skeleton.c"
 |