c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in system headers.
authorJoseph Myers <jsm@polyomino.org.uk>
Tue, 5 Oct 2004 19:58:39 +0000 (20:58 +0100)
committerJoseph Myers <jsm28@gcc.gnu.org>
Tue, 5 Oct 2004 19:58:39 +0000 (20:58 +0100)
* c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
system headers.

testsuite:
* gcc.dg/complex-2.c, gcc.dg/complex-2.h: New test.

From-SVN: r88571

gcc/ChangeLog
gcc/c-decl.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/complex-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/complex-2.h [new file with mode: 0644]

index 71f86e0e474d0f24c705cc290dfc7103edf96587..f3b9b84c2eb0f78c7391e02418072458689dc9aa 100644 (file)
@@ -1,3 +1,8 @@
+2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
+       system headers.
+
 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
 
        * c-decl.c (pushdecl): When an extern declaration at block scope
index 415a75792394bff58af259c3899af3a23164bd0d..a723c258d61692719dcbbdb4a6b37171d8a0f980 100644 (file)
@@ -6816,7 +6816,7 @@ declspecs_add_type (struct c_declspecs *specs, tree type)
              break;
            case RID_COMPLEX:
              dupe = specs->complex_p;
-             if (pedantic && !flag_isoc99)
+             if (pedantic && !flag_isoc99 && !in_system_header)
                pedwarn ("ISO C90 does not support complex types");
              if (specs->typespec_word == cts_void)
                error ("both %<complex%> and %<void%> in "
index b95a6ee9ed17fe4ffd41d68d68a5d16042faa566..2ade3dd839b0fd959e9f96fca816e2b1f30a00ef 100644 (file)
@@ -1,3 +1,7 @@
+2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * gcc.dg/complex-2.c, gcc.dg/complex-2.h: New test.
+
 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
 
        * gcc.c-torture/compile/20041005-1.c: New test.
diff --git a/gcc/testsuite/gcc.dg/complex-2.c b/gcc/testsuite/gcc.dg/complex-2.c
new file mode 100644 (file)
index 0000000..85adcde
--- /dev/null
@@ -0,0 +1,7 @@
+/* Allow complex types in system headers even with -std=iso9899:1990
+   -pedantic-errors.  */
+/* Origin: Joseph Myers <jsm@polyomino.org.uk> */
+/* { dg-do compile } */
+/* { dg-options "-std=iso9899:1990 -pedantic-errors" } */
+
+#include "complex-2.h"
diff --git a/gcc/testsuite/gcc.dg/complex-2.h b/gcc/testsuite/gcc.dg/complex-2.h
new file mode 100644 (file)
index 0000000..752d7f2
--- /dev/null
@@ -0,0 +1,6 @@
+/* Allow complex types in system headers even with -std=iso9899:1990
+   -pedantic-errors.  Header file.  */
+
+#pragma GCC system_header
+
+_Complex double x;