> > 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