| /* Test __builtin_complex errors. */ |
| /* { dg-do compile } */ |
| /* { dg-options "-std=c11 -pedantic-errors" } */ |
| |
| typedef double D; |
| |
| double d; |
| |
| _Complex double dc = __builtin_complex (1.0, (D) 0.0); |
| |
| _Complex double dc2 = __builtin_complex (d, 0.0); /* { dg-error "not constant" } */ |
| |
| _Complex float fc = __builtin_complex (1.0f, 1); /* { dg-error "not of real binary floating-point type" } */ |
| |
| _Complex float fc2 = __builtin_complex (1, 1.0f); /* { dg-error "not of real binary floating-point type" } */ |
| |
| _Complex float fc3 = __builtin_complex (1.0f, 1.0); /* { dg-error "different types" } */ |
| |
| void |
| f (void) |
| { |
| __builtin_complex (0.0); /* { dg-error "wrong number of arguments" } */ |
| __builtin_complex (0.0, 0.0, 0.0); /* { dg-error "wrong number of arguments" } */ |
| } |
| |
| void (*p) (void) = __builtin_complex; /* { dg-error "cannot take address" } */ |