> 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. -- Eric Botcazou