[cxx-abi-dev] __base_class_type_info offset_flags
Mark Mitchell
mark at codesourcery.com
Wed Dec 4 18:59:55 UTC 2002
> Oh well. I guess the decision is made then.
Here is the patch I'm about to check in.
--
Mark Mitchell mark at codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com
Index: abi.html
===================================================================
RCS file: /usr/local/Repository/cxx-abi/abi.html,v
retrieving revision 1.54
diff -c -5 -p -r1.54 abi.html
*** abi.html 3 Dec 2002 17:48:27 -0000 1.54
--- abi.html 4 Dec 2002 19:02:09 -0000
*************** It is derived from <code>abi::__class_ty
*** 2310,2344 ****
<p>
The <code>__base_type</code>
member points to the RTTI for the base type.
<p>
! The upper 56 bits of <code>__offset_flags</code> are a signed
offset.
! For a non-virtual base,
! this is the offset in the object of the base subobject.
! For a virtual base,
! this is the offset in the virtual table of the
! virtual base offset for the virtual base referenced
! (negative).
<p>
The low-order byte of <code>__offset_flags</code> contains flags,
as given by the masks from the enumeration
<code>__offset_flags_masks</code>:
<ul>
<li> 0x1: Base class is virtual
<li> 0x2: Base class is public
</ul>
- <p>
- <img src=warning.gif alt="<b>NOTE</b>:">
- <i>
- In an ABI for a machine with 32-bit addresses,
- the offset becomes a 32-bit field,
- and the flags are in the low-order byte of a second 32-bit field.
- </i>
-
</ul>
<p>
Note that the resulting structure is variable-length,
with the actual size depending on the number of trailing base class
--- 2310,2334 ----
<p>
The <code>__base_type</code>
member points to the RTTI for the base type.
<p>
! All but the lower 8 bits of <code>__offset_flags</code> are a
! signed offset. For a non-virtual base, this is the offset in
! the object of the base subobject. For a virtual base, this is
! the offset in the virtual table of the virtual base offset for
! the virtual base referenced (negative).
<p>
The low-order byte of <code>__offset_flags</code> contains flags,
as given by the masks from the enumeration
<code>__offset_flags_masks</code>:
<ul>
<li> 0x1: Base class is virtual
<li> 0x2: Base class is public
</ul>
</ul>
<p>
Note that the resulting structure is variable-length,
with the actual size depending on the number of trailing base class
*************** unwind table location.
*** 4928,4937 ****
--- 4918,4931 ----
<p> <hr> <p>
<a name=revisions>
<h2> Appendix R: Revision History </h2>
<p> <hr> <p>
+
+ <p>
+ <font color=blue>[021204]</font>
+ Remove note about 32-bit RTTI variation.
<p>
<font color=blue>[021125]</font>
Clarify guard functions.
More information about the cxx-abi-dev
mailing list