From 081a1e13fc71151ab9486d9ceffed5ff99775652 Mon Sep 17 00:00:00 2001 From: ghazi Date: Sat, 16 Jan 1999 16:43:26 +0000 Subject: [PATCH] * c-decl.c (duplicate_decls): If `warn_traditional', warn when a non-static function declaration follows a static one. * invoke.texi (-Wtraditional): Document the extra check now done by this flag. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24703 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 8 ++++++++ gcc/c-decl.c | 10 +++++++++- gcc/invoke.texi | 6 +++++- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a294f81..02e5d2c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +Sat Jan 16 19:31:07 1999 Kaveh R. Ghazi + + * c-decl.c (duplicate_decls): If `warn_traditional', warn when + a non-static function declaration follows a static one. + + * invoke.texi (-Wtraditional): Document the extra check now done + by this flag. + Sat Jan 16 15:13:46 1999 Jeffrey A Law (law@cygnus.com) * pa.md (shadd): Create shadd insns, even if the result of the shift is diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 9066bea..7b3be83 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -1,5 +1,5 @@ /* Process declarations and variables for C compiler. - Copyright (C) 1988, 92-97, 1998 Free Software Foundation, Inc. + Copyright (C) 1988, 92-98, 1999 Free Software Foundation, Inc. This file is part of GNU CC. @@ -1858,6 +1858,14 @@ duplicate_decls (newdecl, olddecl, different_binding_level) && !TREE_PUBLIC (newdecl)) warning_with_decl (newdecl, "static declaration for `%s' follows non-static"); + /* If warn_traditional, warn when a non-static function + declaration follows a static one. */ + if (warn_traditional + && TREE_CODE (olddecl) == FUNCTION_DECL + && !TREE_PUBLIC (olddecl) + && TREE_PUBLIC (newdecl)) + warning_with_decl (newdecl, "non-static declaration for `%s' follows static"); + /* Warn when const declaration follows a non-const declaration, but not for functions. */ if (TREE_CODE (olddecl) != FUNCTION_DECL diff --git a/gcc/invoke.texi b/gcc/invoke.texi index 52291d3..72a3e47 100644 --- a/gcc/invoke.texi +++ b/gcc/invoke.texi @@ -1,4 +1,4 @@ -@c Copyright (C) 1988,89,92,93,94,95,96,97,98,1999 Free Software Foundation, Inc. +@c Copyright (C) 1988, 89, 92-98, 1999 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. @@ -1548,6 +1548,10 @@ the block. @item A @code{switch} statement has an operand of type @code{long}. + +@item +A non-@code{static} function declaration follows a @code{static} one. +This construct is not accepted by some traditional C compilers. @end itemize @item -Wundef -- 2.7.4