aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2004-10-05 19:58:39 +0000
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2004-10-05 19:58:39 +0000
commit2292b3cfadecad9c4b8bf72cbfcf0d624478aac7 (patch)
tree3d54f3fac62131960b9bc0fcfd664e54c7bfe590
parent2d7a881f4ed589a3a7dd08f6dde445383700e383 (diff)
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88571 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/c-decl.c2
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/complex-2.c7
-rw-r--r--gcc/testsuite/gcc.dg/complex-2.h6
5 files changed, 23 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 71f86e0e474..f3b9b84c2eb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
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
refers to a visible entity with internal linkage, use the old DECL
rather than the new one.
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index 415a7579239..a723c258d61 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -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 "
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b95a6ee9ed1..2ade3dd839b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,9 @@
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.
2004-10-05 Nathan Sidwell <nathan@codesourcery.com>
diff --git a/gcc/testsuite/gcc.dg/complex-2.c b/gcc/testsuite/gcc.dg/complex-2.c
new file mode 100644
index 00000000000..85adcde2a78
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/complex-2.c
@@ -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
index 00000000000..752d7f26d61
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/complex-2.h
@@ -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;