incomplete rtti
Jim Dehnert
dehnert at baalbek.engr.sgi.com
Tue Apr 4 23:24:41 UTC 2000
I'll try to make this clearer. However, the sentence you complain about
is correct:
> After linking and loading, only one type_info structure is accessible
> via the external name defined by this ABI for any particular complete
> type symbol.
It does NOT say that no other type_info structures are accessible, only
that there's only one with the ABI-defined name. This is true for all
types, including pointers. Your problem is that some "complete"
pointers may reference other type_info structures. Anyway, I've fixed
this paragraph and the next one you mention -- see what you think.
> That sentance _must_ be changed. In the language of the standard an 'A *' is
> a complete type, regardless of A.
...
> The paragraph descriping pointer equality seems to describe a rather long winded
> algorithm -- and it's incomplete as it doesn't say the cv quals must be compared.
> Why not just compare the NTBS's of the pointer types themselves? I suggest
>
> When abi::__pointer_type_info objects are compared for equality, if either has the
> incomplete flag set the NTBS of the std::type_info bases must be compared. When
> neither incomplete flag is set, the addresses of the abi::__pointer_type_info objects
> can be compared as with the other types. The implementation of before() behaves
> similarly.
I think the reason you can't just check the NTBS of the pointer is
precisely because of intervening CV-qualifiers. Or do they always have
to match? Anyway, I haven't changed this paragraph, pending better
understanding.
Jim
- Jim Dehnert dehnert at sgi.com
(650)933-4272
More information about the cxx-abi-dev
mailing list