aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg/builtin-complex-err-1.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.dg/builtin-complex-err-1.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/builtin-complex-err-1.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/builtin-complex-err-1.c b/gcc-4.9/gcc/testsuite/gcc.dg/builtin-complex-err-1.c
new file mode 100644
index 000000000..ddc72b583
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/builtin-complex-err-1.c
@@ -0,0 +1,26 @@
+/* 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" } */