diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2001-06-12 18:08:05 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2001-06-12 18:08:05 +0000 |
commit | 623fe76a4c9035ec908db4c6f61e9f191dd657aa (patch) | |
tree | 008913fbee6bdbb7652317a0c709f6c3927127f2 /libffi | |
parent | 205a5b45503be8a8e165b0876082801917f7c240 (diff) | |
download | gcc-623fe76a4c9035ec908db4c6f61e9f191dd657aa.zip gcc-623fe76a4c9035ec908db4c6f61e9f191dd657aa.tar.gz gcc-623fe76a4c9035ec908db4c6f61e9f191dd657aa.tar.bz2 |
PR c++/3130, c++/3131, c++/3132
cp:
PR c++/3130, c++/3131, c++/3132
* cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
* class.c (force_canonical_binfo_r): Move
BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
virtual bases unless they're primary and what they're primary
too has been moved.
(dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
derived binfo.
(mark_primary_bases): Use BINFO_UNSHARED_MARKED.
(layout_nonempty_base_or_field): Add most derived type
parameter. Adjust.
(layout_empty_base): Likewise.
(build_base_field): Likewise.
(build_base_fields): Likewise.
(propagate_binfo_offsets): Add most derived type
parameter. Skip non canonical virtual bases too.
(dfs_set_offset_for_unshared_vbases): Don't skip primary
bases. Do skip canonical bases.
(layout_virtual_bases): Adjust.
(layout_class_type): Adjust.
(dfs_get_primary_binfo): Build list of virtual primary base
candidates.
(get_primary_binfo): Check that the shared virtual primary
base candidate was found first.
(accumulate_vtbl_inits): Don't do anything for non-vptr
containing binfos. For case 1 primary virtual bases, keep
checking that we've not emerged from the hierarchy of RTTI_BINFO.
testsuite:
* g++.old-deja/g++.abi/vbase5.C: New test.
* g++.old-deja/g++.abi/vbase6.C: New test.
* g++.old-deja/g++.abi/vbase7.C: New test.
From-SVN: r43266
Diffstat (limited to 'libffi')
0 files changed, 0 insertions, 0 deletions