A-23: RTTI has-public-base flag

Jim Dehnert dehnert at baalbek.engr.sgi.com
Fri Feb 18 23:05:29 UTC 2000


> From nathan at acm.org  Fri Feb 18 02:45:20 2000
> 
> Jim Dehnert wrote:
> > 
> > Another issue from the meeting today:  we see no utility for the
> > __vmi_class_type_info flag indicating that there is a public base.
> > Is there one that anyone knows of?  If so, I presume that "direct or
> > indirect" is equivalent to direct only, since it's not public unless
> > the entire inheritance path is public?  The reference is:
> There are several reasons I suggested it. The semantics I meant
> were `there is at least one direct or indirect public base' (symmetrical
> definition of the non-public, virtual and non-virtual flags). In this
> case the indirect paths are unimportant, because for one of those to
> be public, a direct base must be too (just as for the non-virtual flag).
> 
> To tell whether the whole graph is public, we look for non-public being
> zero.
> 
> 1) Symmetry, we had virtual/non-virtual, so public/non-public. However
> the virtual ones are now killed, so this reason goes away.
> 
> 2) For dynamic cast and catching we're looking for public bases. Such
> a flag would tell us not to bother iterating over the base class array.
> This is possibly an unimportant optimization - maybe even a pessimizer by
> throwing in another test.
> 
> I've no strong feeling about the public flag, but I'm nervous about
> throwing it away before actually coding up the dcast and catch algorithms
> with it in mind.

OK.  I've added an action item for you to validate its utility, and I
propose that we now close this issue with the flag left there, and look
at it again once you've done the implementation.  OK with everyone?

Jim
-	    Jim Dehnert		dehnert at sgi.com
				(650)933-4272




More information about the cxx-abi-dev mailing list