diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1996-11-12 14:17:33 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1996-11-12 14:17:33 -0500 |
commit | 720283f2ebd1517cce58eb73f41701c2e4bc7fad (patch) | |
tree | 5554c1b2cad058621b49d3c369b0df95f770006c | |
parent | 2f23fcc9f1b46317c0bb0ad24e60a987f01b3cd5 (diff) | |
download | gcc-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.c | 18 |
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; } |