summaryrefslogtreecommitdiffstats
path: root/gcc/cp/init.c
diff options
context:
space:
mode:
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>2004-08-30 13:12:14 +0000
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>2004-08-30 13:12:14 +0000
commiteea75c62dcbf1b56c47134dbd5c703fdaac76f9d (patch)
tree9371d0d44b6ad4b608ffaecce208e472e1bca5fc /gcc/cp/init.c
parentb56b0f1768429005c2413ce50995d9a217f69c35 (diff)
downloadppe42-gcc-eea75c62dcbf1b56c47134dbd5c703fdaac76f9d.tar.gz
ppe42-gcc-eea75c62dcbf1b56c47134dbd5c703fdaac76f9d.zip
* tree.h (BINFO_PRIMARY_BASE_OF): Remove.
(struct tree_binfo): Remove primary field. * cp/cp-tree.h (BINFO_PRIMARY_P): Use a binfo flag. (BINFO_INDIRECT_PRIMARY_P): Remove. * cp/class.c (determine_primary_base): Rename to ... (determine_primary_bases): ... here. Set all primary bases. (set_primary_base): Remove. (mark_primary_bases): Remove. (build_simple_base_path, walk_subobject_offsets, propagate_binfo_offsets, end_of_class): Adjust. (layout_class_type): Rename determine_primary_base call. (dump_class_hierarchy_r, dump_vtable): Adjust. Don't pass a binfo to type_as_string. (dfs_build_secondary_vptr_vtt_inits, dfs_accumulate_vtbl_inits, build_rtti_vtbl_entries): Adjust. * cp/init.c (build_vtbl_address): Adjust. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86766 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/init.c')
-rw-r--r--gcc/cp/init.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/gcc/cp/init.c b/gcc/cp/init.c
index 1f172d2b2f5..ea38333d776 100644
--- a/gcc/cp/init.c
+++ b/gcc/cp/init.c
@@ -716,15 +716,14 @@ build_vtbl_address (tree binfo)
tree binfo_for = binfo;
tree vtbl;
- if (BINFO_VPTR_INDEX (binfo) && BINFO_VIRTUAL_P (binfo)
- && BINFO_PRIMARY_P (binfo))
+ if (BINFO_VPTR_INDEX (binfo) && BINFO_VIRTUAL_P (binfo))
/* If this is a virtual primary base, then the vtable we want to store
is that for the base this is being used as the primary base of. We
can't simply skip the initialization, because we may be expanding the
inits of a subobject constructor where the virtual base layout
can be different. */
- while (BINFO_PRIMARY_BASE_OF (binfo_for))
- binfo_for = BINFO_PRIMARY_BASE_OF (binfo_for);
+ while (BINFO_PRIMARY_P (binfo_for))
+ binfo_for = BINFO_INHERITANCE_CHAIN (binfo_for);
/* Figure out what vtable BINFO's vtable is based on, and mark it as
used. */
OpenPOWER on IntegriCloud