Actions
| Post | |
| Subscribe | |
| Unsubscribe |
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [cxx-abi-dev] Vtable layout question
- To: <sje@xxxxxxxxxx>, <cxx-abi-dev@xxxxxxxxxxxxxxxx>
- Subject: Re: [cxx-abi-dev] Vtable layout question
- From: "Mark Mitchell" <mark@xxxxxxxxxxxxxxxx>
- Date: Thu, 24 Jul 2003 19:07:05 -0700
> I was wondering if someone who understands the C++ ABI better then I do > could answer a question for me. Specifically in section 2.5.2 it says: > > | Following the primary virtual table of a derived class are secondary > | virtual tables for each of its proper base classes, except any primary > | base(s) with which it shares its primary virtual table. These are > | copies of the virtual tables for the respective base classes (copies in > | the sense that they have the same layout, though the fields may have > | different values). We call the collection consisting of a primary > | virtual table along with all of its secondary virtual tables a virtual > | table group. The order in which they occur is the same as the order in > | which the base class subobjects are considered for allocation in the > | derived object: > > My question is why does the location and order of the secondary vtables > matter. I *think* the only way to get to one of these secondary vtables > is through the VTT, in which case all that really matters is that the > pointers in the VTT point to the correct vtables and the actual ordering > and location of those vtables is immaterial. Is that correct or am I > missing an important aspect of the ABI? Compilers take advantage of the known relative positions of these vtables. For example, a VTT initializer will compute the entries to put in the VTT by starting with the first entry in the group and then advancing a known number of bytes to reach the other entries in the group. (That is the only portable way to initialize the VTT because secondary vtables do not have well-specified names.) -- Mark
- References:
- Vtable layout question
- From: Steve Ellcey
- Vtable layout question
- Prev by Date: Re: [cxx-abi-dev] Vtable layout question
- Next by Date: Name mangling for explicit overriders
- Previous by thread: Vtable layout question
- Next by thread: Re: [cxx-abi-dev] Vtable layout question
- Index(es):