Fix ctor vtable vcall offsets.
authorNathan Sidwell <nathan@codesourcery.com>
Tue, 27 Feb 2001 13:12:17 +0000 (13:12 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Tue, 27 Feb 2001 13:12:17 +0000 (13:12 +0000)
commit73ea87d76df215c101cf1a6b17bc7739c341f1dc
treee1373cb66df659978b6b794e47123159fe6b0acc
parentfaa7e81482c1e4127ef3bf6d36e6e10f27f27ed4
Fix ctor vtable vcall offsets.

cp:
Fix ctor vtable vcall offsets.
* class.c (struct vtbl_init_data_s): Add rtti_binfo member.
(build_rtt_vtbl_entries): Lose RTTI_BINFO parameter.
(get_matching_base): Remove.
(get_original_base): New function.
(build_vtbl_initializer): Initialize vid.rtti_binfo.
Use a virtual thunk for a ctor vtable with an index
(add_vcall_offset_vtbl_entries_1): Check if binfo has lost a
primary base within a constructor vtable. Only set
BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset
when primary base has been lost.
* cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment.
testsuite:
* g++.old-deja/g++.abi/vtable3.h: Check vcall offsets too.

From-SVN: r40090
gcc/cp/ChangeLog
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/testsuite/ChangeLog
gcc/testsuite/g++.old-deja/g++.abi/vtable3.h