rtti data layout notes

Nathan Sidwell sidwell at codesourcery.com
Mon Jan 24 10:17:28 UTC 2000


Hi,
more rtti data issues, these are documentation clarifications

1) place of emission
This does not mention that a type_info for 'void' is emitted in the
runtime. However, it must be because 'void *' will reference it.
Suggest not special casing void, and including it in the second bullet
point with the remaining fundamental types.

2) place of emission of vtables.
The vtables for the type_info derrived classes must be in the runtime.
Other translation units must not emit vtables. Rationale: the runtime
will expect certain implementation defined virtual member functions
for these classes. A foreign translation unit must not override the
runtime's vtable.

3) si_class_type_info is for a single nonvirtual inheritance heirarchy.
Presumably this single non-virtual inheritance is between the derrived
and the base (the base may or may not have multiple or virtual bases).
An additional constraint is that, if the derrived class is polymorphic,
the base class is too. Rationale: if the derrived class adds
polymorphism, the base will be at a non-zero offset.

nathan
-- 
Dr Nathan Sidwell :: sidwell at codesourcery.com
nathan at acm.org  http://www.cs.bris.ac.uk/~nathan/  nathan at cs.bris.ac.uk




More information about the cxx-abi-dev mailing list