From 3a2711280b9cf358631f5ad7d1d7ae19e8cc4e10 Mon Sep 17 00:00:00 2001 From: mmitchel Date: Mon, 17 Jan 2000 05:12:39 +0000 Subject: [PATCH] * class.c (finish_struct_1): Replace redundant code with assertions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31454 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cp/ChangeLog | 3 +++ gcc/cp/class.c | 22 +++++++++++----------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index f8f2bdf..ae00eaf 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2000-01-16 Mark Mitchell + * class.c (finish_struct_1): Replace redundant code with + assertions. + * cp-tree.h (flag_new_abi): Move. (flag_use_cxa_atexit): Likewise. (flag_honor_std): Likewise. diff --git a/gcc/cp/class.c b/gcc/cp/class.c index 8c1073e..9b14ded 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -4906,18 +4906,18 @@ finish_struct_1 (t) if (TYPE_CONTAINS_VPTR_P (t)) { + if (TYPE_BINFO_VTABLE (t)) + my_friendly_assert (DECL_VIRTUAL_P (TYPE_BINFO_VTABLE (t)), + 20000116); + if (!CLASSTYPE_HAS_PRIMARY_BASE_P (t)) + my_friendly_assert (TYPE_BINFO_VIRTUALS (t) == NULL_TREE, + 20000116); + CLASSTYPE_VSIZE (t) = has_virtual; - if (CLASSTYPE_HAS_PRIMARY_BASE_P (t)) - { - if (pending_virtuals) - TYPE_BINFO_VIRTUALS (t) = chainon (TYPE_BINFO_VIRTUALS (t), - pending_virtuals); - } - else if (has_virtual) - { - TYPE_BINFO_VIRTUALS (t) = pending_virtuals; - DECL_VIRTUAL_P (TYPE_BINFO_VTABLE (t)) = 1; - } + /* Entries for virtual functions defined in the primary base are + followed by entries for new functions unique to this class. */ + TYPE_BINFO_VIRTUALS (t) + = chainon (TYPE_BINFO_VIRTUALS (t), pending_virtuals); } /* Now lay out the virtual function table. */ -- 2.7.4