c-decl.c (duplicate_decls): If `warn_traditional'...
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>
Sat, 16 Jan 1999 16:43:26 +0000 (16:43 +0000)
committerKaveh Ghazi <ghazi@gcc.gnu.org>
Sat, 16 Jan 1999 16:43:26 +0000 (16:43 +0000)
        * 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.

From-SVN: r24703

gcc/ChangeLog
gcc/c-decl.c
gcc/invoke.texi

index a294f81a260adc3e06ed8c4378766cf28fe055ce..02e5d2cbfe88810283eb800c202b8710a47eb2ae 100644 (file)
@@ -1,3 +1,11 @@
+Sat Jan 16 19:31:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * 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
index 9066bea53bd0dfe8f68504a7c99bf518701d715d..7b3be835b7f8e7a9f9adbbea5162cc49f4d72ac5 100644 (file)
@@ -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
index 52291d31f2d21e0303a2a677b9b340fa5beded82..72a3e4758cfb45877cc77475ba5629b921f684ab 100644 (file)
@@ -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