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