aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMark Mitchell <mmitchel@gcc.gnu.org>2001-02-18 20:41:10 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2001-02-18 20:41:10 +0000
commit69a59a49f66f5996ff5c89b739399db0fbd66588 (patch)
treeb2de79803511e2b57c81b91a7325f0f30ae339e7 /gcc
parent8fa33dfa9397b7a2ab094eefac825f178cff54b9 (diff)
downloadgcc-69a59a49f66f5996ff5c89b739399db0fbd66588.zip
gcc-69a59a49f66f5996ff5c89b739399db0fbd66588.tar.gz
gcc-69a59a49f66f5996ff5c89b739399db0fbd66588.tar.bz2
class.c (add_vcall_offset_vtbl_entries_1): Only add one entry for a destructor.
* class.c (add_vcall_offset_vtbl_entries_1): Only add one entry for a destructor. From-SVN: r39847
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog8
-rw-r--r--gcc/cp/class.c6
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 9905291..0f94cec 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2001-02-18 Mark Mitchell <mark@codesourcery.com>
+
+ * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry
+ for a destructor.
+
2001-02-18 Jason Merrill <jason@redhat.com>
Do put the VTT parameter in DECL_ARGUMENTS.
@@ -1060,7 +1065,8 @@ Sun Feb 4 15:52:44 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* class.c (check_field_decls): Don't special case anonymous
fields in error messages.
- (note_name_declared_in_class): Use %D on diagnostic.
+ (note_name_declared_inpwdpwd
+ _class): Use %D on diagnostic.
* tree.c (pod_type_p): Use strip_array_types.
(cp_valid_lang_attribute): Likewise.
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index b1b4180..6752c90 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -7689,7 +7689,11 @@ add_vcall_offset_vtbl_entries_1 (binfo, vid)
tree derived_entry;
derived_entry = VARRAY_TREE (vid->fns, i);
- if (same_signature_p (BV_FN (derived_entry), fn))
+ if (same_signature_p (BV_FN (derived_entry), fn)
+ /* We only use one vcall offset for virtual destructors,
+ even though there are two virtual table entries. */
+ || (DECL_DESTRUCTOR_P (BV_FN (derived_entry))
+ && DECL_DESTRUCTOR_P (fn)))
{
BV_VCALL_INDEX (derived_virtuals)
= BV_VCALL_INDEX (derived_entry);