From 7fdc3e09525674e714c5e304b3d7977d55c4028c Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Tue, 5 Oct 2004 20:58:39 +0100 Subject: [PATCH] c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in system headers. * 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 | 5 +++++ gcc/c-decl.c | 2 +- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gcc.dg/complex-2.c | 7 +++++++ gcc/testsuite/gcc.dg/complex-2.h | 6 ++++++ 5 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.dg/complex-2.c create mode 100644 gcc/testsuite/gcc.dg/complex-2.h diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 71f86e0e474..f3b9b84c2eb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-10-05 Joseph S. Myers + + * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in + system headers. + 2004-10-05 Joseph S. Myers * c-decl.c (pushdecl): When an extern declaration at block scope 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 % and % in " diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b95a6ee9ed1..2ade3dd839b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2004-10-05 Joseph S. Myers + + * gcc.dg/complex-2.c, gcc.dg/complex-2.h: New test. + 2004-10-05 Joseph S. Myers * 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 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 */ +/* { 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; -- 2.30.2