aboutsummaryrefslogtreecommitdiff
path: root/libffi
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2001-06-12 18:08:05 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2001-06-12 18:08:05 +0000
commit623fe76a4c9035ec908db4c6f61e9f191dd657aa (patch)
tree008913fbee6bdbb7652317a0c709f6c3927127f2 /libffi
parent205a5b45503be8a8e165b0876082801917f7c240 (diff)
downloadgcc-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