summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>1999-08-06 00:07:50 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>1999-08-06 00:07:50 +0000
commit7faec079cc2ffbbe5d379c7205ebbd7e068b8207 (patch)
tree4e64295c6c3f8e12688b28149ce0a0007809ffee
parentefd1dd9624e501e633bce53955681dab5078b515 (diff)
downloadppe42-gcc-7faec079cc2ffbbe5d379c7205ebbd7e068b8207.tar.gz
ppe42-gcc-7faec079cc2ffbbe5d379c7205ebbd7e068b8207.zip
* decl.c (pushdecl): Only give an error for shadowing a parm
from *this* function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28545 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/decl.c6
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 <jason@yorick.cygnus.com>
+
+ * 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. */
OpenPOWER on IntegriCloud