diff options
| author | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-30 13:12:14 +0000 |
|---|---|---|
| committer | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-30 13:12:14 +0000 |
| commit | eea75c62dcbf1b56c47134dbd5c703fdaac76f9d (patch) | |
| tree | 9371d0d44b6ad4b608ffaecce208e472e1bca5fc /gcc/cp/init.c | |
| parent | b56b0f1768429005c2413ce50995d9a217f69c35 (diff) | |
| download | ppe42-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.c | 7 |
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. */ |

