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
This commit is contained in:
Steven Bosscher 2005-10-19 14:48:29 +00:00 committed by Steven Bosscher
parent e48050bd06
commit f95f80d1a7
2 changed files with 14 additions and 1 deletions

View 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

View 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;