From 9d29e7afe1d191b14c296cbcf72f53fdbaa46b95 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Fri, 6 Aug 1999 00:07:50 +0000 Subject: [PATCH] decl.c (pushdecl): Only give an error for shadowing a parm from *this* function. * decl.c (pushdecl): Only give an error for shadowing a parm from *this* function. From-SVN: r28545 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/decl.c | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 488e44188fa..19fe82d1dc9 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +1999-08-05 Jason Merrill + + * decl.c (pushdecl): Only give an error for shadowing a parm + from *this* function. + Thu Aug 5 02:40:42 1999 Jeffrey A Law (law@cygnus.com) * typeck2.c: Update URLs and mail addresses. diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 6702f2c5edb..67b71088dee 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -4118,8 +4118,10 @@ pushdecl (x) /* Warn if shadowing an argument at the top level of the body. */ else if (oldlocal != NULL_TREE && !DECL_EXTERNAL (x) - && TREE_CODE (oldlocal) == PARM_DECL - && TREE_CODE (x) != PARM_DECL) + && TREE_CODE (oldlocal) == PARM_DECL + /* Don't complain if it's from an enclosing function. */ + && DECL_CONTEXT (oldlocal) == current_function_decl + && TREE_CODE (x) != PARM_DECL) { /* Go to where the parms should be and see if we find them there. */ -- 2.30.2