diff options
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/pt.c | 7 |
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 9e56913ef1f..51860c5c527 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,4 +1,10 @@ +2002-12-10 Mark Mitchell <mark@codesourcery.com> + + PR c++/8372 + * pt.c (tsubst_copy): Handle destructor names more correctly. + 2002-12-10 Matt Austern <austern@apple.com> + * cp-tree.h: get rid of needs_virtual_reinit bit. 2002-12-09 Mark Mitchell <mark@codesourcery.com> diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 9f1a382bfa7..fa3caac01dc 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -7233,9 +7233,10 @@ tsubst_copy (t, args, complain, in_decl) { tree base = tsubst_copy (TREE_OPERAND (name, 0), args, complain, in_decl); - name = TREE_OPERAND (name, 1); - name = tsubst_copy (TREE_OPERAND (name, 0), args, - complain, in_decl); + name = TREE_OPERAND (TREE_OPERAND (name, 1), 0); + if (TREE_CODE (name) == TYPE_DECL) + name = TREE_TYPE (name); + name = tsubst_copy (name, args, complain, in_decl); name = build1 (BIT_NOT_EXPR, NULL_TREE, name); name = build_nt (SCOPE_REF, base, name); } |