PR c/23228
authorsteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 19 Oct 2005 14:48:29 +0000 (14:48 +0000)
committersteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 19 Oct 2005 14:48:29 +0000 (14:48 +0000)
* c-decl.c (pop_scope): Don't warn about an unused variable
if it is marked with TREE_NO_WARNING.
(duplicate_decls): Set TREE_NO_WARNING if olddecl and newdecl
somenow mismatch and olddecl is to be replaced.

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

gcc/ChangeLog
gcc/c-decl.c

index 45d936a..886d1f8 100644 (file)
@@ -1,3 +1,11 @@
+2005-10-19  Steven Bosscher  <stevenb@suse.de>
+
+       PR c/23228
+       * c-decl.c (pop_scope): Don't warn about an unused variable
+       if it is marked with TREE_NO_WARNING.
+       (duplicate_decls): Set TREE_NO_WARNING if olddecl and newdecl
+       somenow mismatch and olddecl is to be replaced.
+
 2005-10-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        PR middle-end/23199
index c274df4..f7cad3b 100644 (file)
@@ -803,6 +803,7 @@ pop_scope (void)
        case VAR_DECL:
          /* Warnings for unused variables.  */
          if (!TREE_USED (p)
+             && !TREE_NO_WARNING (p)
              && !DECL_IN_SYSTEM_HEADER (p)
              && DECL_NAME (p)
              && !DECL_ARTIFICIAL (p)
@@ -1876,7 +1877,11 @@ duplicate_decls (tree newdecl, tree olddecl)
   tree newtype = NULL, oldtype = NULL;
 
   if (!diagnose_mismatched_decls (newdecl, olddecl, &newtype, &oldtype))
-    return false;
+    {
+      /* Avoid `unused variable' and other warnings warnings for OLDDECL.  */
+      TREE_NO_WARNING (olddecl) = 1;
+      return false;
+    }
 
   merge_decls (newdecl, olddecl, newtype, oldtype);
   return true;