diff options
| -rw-r--r-- | gcc/c-decl.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/c-decl.c b/gcc/c-decl.c index a95e725..6fcf45b 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -1576,9 +1576,10 @@ duplicate_decls (newdecl, olddecl) && DECL_INITIAL (olddecl) != 0) warning_with_decl (newdecl, "`%s' declared inline after its definition"); - /* It is nice to warn when a function is declared - global first and then static. */ - if (TREE_CODE (olddecl) == FUNCTION_DECL + + /* If pedantic, warn when static declaration follows a non-static + declaration. Otherwise, do so only for functions. */ + if ((pedantic || TREE_CODE (olddecl) == FUNCTION_DECL) && TREE_PUBLIC (olddecl) && !TREE_PUBLIC (newdecl)) warning_with_decl (newdecl, "static declaration for `%s' follows non-static"); |
