diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2003-08-26 09:16:16 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2003-08-26 09:16:16 +0000 |
commit | 6d9a0a36e54c29474dc5cd1bafd7efe5600d23e9 (patch) | |
tree | 2c4c57aeeadaea119c1e2808f2ac3a9936111080 /gcc/cp/decl.c | |
parent | 20b506726b1e07f028fa81ffc80f5081aabaea02 (diff) | |
download | gcc-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.c | 4 |
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; |