From f95f80d1a762998d6b8731d506f6667ccbdaf996 Mon Sep 17 00:00:00 2001 From: Steven Bosscher <stevenb@suse.de> Date: Wed, 19 Oct 2005 14:48:29 +0000 Subject: [PATCH] re PR c/23228 (Silly "unused variable" warning after redeclaration of a local variable) 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. From-SVN: r105621 --- gcc/ChangeLog | 8 ++++++++ gcc/c-decl.c | 7 ++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 45d936ae2730..886d1f8f431e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/c-decl.c b/gcc/c-decl.c index c274df47ac40..f7cad3b71051 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -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; -- GitLab