diff options
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/decl.c | 4 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 692937e..7079968 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,9 @@ 2003-08-26 Nathan Sidwell <nathan@codesourcery.com> + PR c++/11871 + * decl.c (push_class_level_binding): Correct old_decl value from + my 2003-07-29 reorganization. + * call.c (build_call): Don't set TREE_SIDE_EFFECTS here. (build_new_method_call): Add goto finish. * semantics.c (simplify_aggr_init_exprs_r): Don't set 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; |