[cxx-abi-dev] ABI limitation on the size of a class

Daveed Vandevoorde daveed at edg.com
Wed Feb 23 16:48:46 UTC 2005


On Feb 23, 2005, at 11:35 AM, Christian BRUEL wrote:

>
> I'm trying to understand the rational for the 1.2 Limit section in the 
> itanium C++ ABI (http://www.codesourcery.com/cxx-abi/abi.html#limits)
>
> The section says that this limitation is due to RTTI implementation. 
> Is it because of the field to the beginning of the complete type in 
> the typeinfos ?
> in the libstdc++ sources (gcc 3.3.3) this field ("whole_object" field) 
> has type ptrdiff_t so the only limitation I can find in the size of an 
> object is 2**31 bytes for a 32 bit machine.
>
> The raisons should hide elsewhere, but I really don't see...

The ABI-standard version of struct abi::__base_class_type_info
has a 64-bit field "__offset_flags" that carries some flags in
its lower 8 bits, and an offset in the remaining 56 bits.

See 2.9.5/6a, third bullet.

         Daveed Vandevoorde
         Edison Design Group




More information about the cxx-abi-dev mailing list