OSDN Git Service

PR c/13029
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Nov 2003 19:40:19 +0000 (19:40 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Nov 2003 19:40:19 +0000 (19:40 +0000)
* toplev.c (check_global_declarations): Do not warn about unused
static consts.

PR c/13029
* gcc.dg/unused-4.c: Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73554 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/unused-4.c
gcc/toplev.c

index 4bf3f91..31dfb24 100644 (file)
@@ -1,3 +1,10 @@
+2003-11-13  Mark Mitchell  <mark@codesourcery.com>
+            Kean Johnston <jkj@sco.com>
+
+       PR c/13029
+       * toplev.c (check_global_declarations): Do not warn about unused
+       static consts.
+
 2003-11-13  Pavel Pisa  <pisa@cmp.felk.cvut.cz>
            Kazu Hirata  <kazu@cs.umass.edu>
 
index ba653cb..4d418b0 100644 (file)
@@ -1,3 +1,9 @@
+2003-11-13  Mark Mitchell  <mark@codesourcery.com>
+            Kean Johnston <jkj@sco.com>
+
+       PR c/13029
+       * gcc.dg/unused-4.c: Update.
+
 2003-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        * g++.dg/opt/const3.C: New test.
index 5323600..99e845f 100644 (file)
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-Wunused -O3" } */
 
-static const int i = 0;                /* { dg-warning "defined but not used" } */
+static const int i = 0;
 static void f() { }            /* { dg-warning "defined but not used" } */
 static inline void g() { }
index a1a1d73..cacbb24 100644 (file)
@@ -1720,7 +1720,11 @@ check_global_declarations (tree *vec, int len)
 
       /* Warn about static fns or vars defined but not used.  */
       if (((warn_unused_function && TREE_CODE (decl) == FUNCTION_DECL)
-          || (warn_unused_variable && TREE_CODE (decl) == VAR_DECL))
+          /* We don't warn about "static const" variables because the
+             "rcs_id" idiom uses that construction.  */
+          || (warn_unused_variable
+              && TREE_CODE (decl) == VAR_DECL && ! TREE_READONLY (decl)))
+         && ! DECL_IN_SYSTEM_HEADER (decl)
          && ! TREE_USED (decl)
          /* The TREE_USED bit for file-scope decls is kept in the identifier,
             to handle multiple external decls in different scopes.  */