aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/decl.c
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2003-08-26 09:16:16 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2003-08-26 09:16:16 +0000
commit6d9a0a36e54c29474dc5cd1bafd7efe5600d23e9 (patch)
tree2c4c57aeeadaea119c1e2808f2ac3a9936111080 /gcc/cp/decl.c
parent20b506726b1e07f028fa81ffc80f5081aabaea02 (diff)
downloadgcc-6d9a0a36e54c29474dc5cd1bafd7efe5600d23e9.zip
gcc-6d9a0a36e54c29474dc5cd1bafd7efe5600d23e9.tar.gz
gcc-6d9a0a36e54c29474dc5cd1bafd7efe5600d23e9.tar.bz2
re PR c++/11871 (Koenig lookup regression)
cp: PR c++/11871 * decl.c (push_class_level_binding): Correct old_decl value from my 2003-07-29 reorganization. testsuite: PR c++/11871 * c++.dg/lookup/crash1.C: New test. From-SVN: r70803
Diffstat (limited to 'gcc/cp/decl.c')
-rw-r--r--gcc/cp/decl.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index d89ec91..0f6d090 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -4282,11 +4282,13 @@ push_class_level_binding (tree name, tree x)
if (TREE_CODE (bval) == TYPE_DECL && DECL_ARTIFICIAL (bval)
&& !(TREE_CODE (x) == TYPE_DECL && DECL_ARTIFICIAL (x)))
{
+ old_decl = BINDING_TYPE (binding);
BINDING_TYPE (binding) = bval;
BINDING_VALUE (binding) = NULL_TREE;
INHERITED_VALUE_BINDING_P (binding) = 0;
}
- old_decl = bval;
+ else
+ old_decl = bval;
}
else if (TREE_CODE (x) == OVERLOAD && is_overloaded_fn (bval))
old_decl = bval;