aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Evans <dje@gnu.org>1997-03-25 21:39:09 +0000
committerDoug Evans <dje@gnu.org>1997-03-25 21:39:09 +0000
commitae998c9a69a3cfa88fe8157eb72db36036a7a7b2 (patch)
treedfc1b363d30d0153ba538cc265f85a6f94cd4340
parent9ab8cffd4806fd39b8cc1c276052d90eef7b5c36 (diff)
downloadgcc-ae998c9a69a3cfa88fe8157eb72db36036a7a7b2.zip
gcc-ae998c9a69a3cfa88fe8157eb72db36036a7a7b2.tar.gz
gcc-ae998c9a69a3cfa88fe8157eb72db36036a7a7b2.tar.bz2
* c-decl.c (grokdeclarator): Pedwarn qualified void function return type.
From-SVN: r13802
-rw-r--r--gcc/c-decl.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index f4c4a06..f9860e2 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -5031,6 +5031,13 @@ grokdeclarator (declarator, declspecs, decl_context, initialized)
&& ! DECL_IN_SYSTEM_HEADER (decl))
pedwarn ("ANSI C forbids const or volatile functions");
+ if (pedantic
+ && TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (decl))) == void_type_node
+ && (TYPE_READONLY (TREE_TYPE (TREE_TYPE (decl)))
+ || TYPE_VOLATILE (TREE_TYPE (TREE_TYPE (decl))))
+ && ! DECL_IN_SYSTEM_HEADER (decl))
+ pedwarn ("ANSI C forbids const or volatile void function return type");
+
if (volatilep
&& TREE_TYPE (TREE_TYPE (decl)) != void_type_node)
warning ("`noreturn' function returns non-void value");