> > Usually cycles happen through structure members and it might be that
> > all other frontends have the pointed-to type incomplete.  But the
> > above recursion shouldn't apply for the structure case.
> 
> All types are equal in Ada and can be forward declared; the language 
> specifies 
> that their "elaboration" can be delayed until a "freeze" point (in 
> particular, 
> you cannot declare an object of the type until after it), from which all the 
> incomplete references must be resolved to the final type.
> 
> > Not sure how your other examples look like.
> 
> Pure pointer cycles of any length.

OK, the code already pre-allocates the vector to be 8 elements.  What about
simply punting when reaching this depth? I do not think real world program have
more than 8 nested pointers often enough for this to matter.
They will then get same alias set as void *.

Honza
> 
> -- 
> Eric Botcazou

Reply via email to