construction vtables broken

Jason Merrill jason at redhat.com
Tue Jan 23 16:44:26 UTC 2001


>>>>> "Nathan" == Nathan Sidwell <nathan at codesourcery.com> writes:

> Sadly, the VTT algorithms in the C++ abi are broken, and fail on diamond
> shaped graphs.

> The VTT only contains secondary vtable pointers for bases with virtual
> bases or with virtual functions overridden along a virtual path from that
> base to the base for which the VTT belongs.

Yes.  Basically, RTTI information needs to count as a virtual function
which is overridden in every class.

> We need to change 2.6.2 part 3 to include secondary virtual pointers for
> each subobject X with either (a) virtual bases or (b) reachable via a
> virtual path from D. All the stuff about overriding virtual functions
> along a virtual path is unneeded.

But it still needs to say something about having virtual functions (in
order to have RTTI information).  It might be cleaner just to add the bit
above about RTTI.

Jason




More information about the cxx-abi-dev mailing list