aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1996-11-12 14:17:33 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1996-11-12 14:17:33 -0500
commit720283f2ebd1517cce58eb73f41701c2e4bc7fad (patch)
tree5554c1b2cad058621b49d3c369b0df95f770006c
parent2f23fcc9f1b46317c0bb0ad24e60a987f01b3cd5 (diff)
downloadgcc-720283f2ebd1517cce58eb73f41701c2e4bc7fad.zip
gcc-720283f2ebd1517cce58eb73f41701c2e4bc7fad.tar.gz
gcc-720283f2ebd1517cce58eb73f41701c2e4bc7fad.tar.bz2
(grokdeclarator): Generate a warning if -Wimplicit, unless a warning
was already generated by -Wreturn-type. From-SVN: r13135
-rw-r--r--gcc/c-decl.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index 13d6887..accc025 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -4277,10 +4277,20 @@ grokdeclarator (declarator, declspecs, decl_context, initialized)
if (type == 0)
{
- if (funcdef_flag && warn_return_type
- && ! (specbits & ((1 << (int) RID_LONG) | (1 << (int) RID_SHORT)
- | (1 << (int) RID_SIGNED) | (1 << (int) RID_UNSIGNED))))
- warn_about_return_type = 1;
+ if (! (specbits & ((1 << (int) RID_LONG) | (1 << (int) RID_SHORT)
+ | (1 << (int) RID_SIGNED)
+ | (1 << (int) RID_UNSIGNED))))
+ {
+ /* C9x will probably require a diagnostic here.
+ For now, issue a warning if -Wreturn-type and this is a function,
+ or if -Wimplicit; prefer the former warning since it is more
+ explicit. */
+ if ((warn_implicit || warn_return_type) && funcdef_flag)
+ warn_about_return_type = 1;
+ else if (warn_implicit)
+ warning ("type defaults to `int' in declaration of `%s'", name);
+ }
+
defaulted_int = 1;
type = integer_type_node;
}