stt@ada-uts (05/14/86)
You have run into the basic flaw with Pragma ELABORATE. Its usefulness is severely limited given its current semantics. It would be much more useful if a pragma ELABORATE of a unit implied a pragma ELABORATE of all of the units its body "with"s. Ada '88? Nevertheless, most compilers implement "friendly" elaboration order so you won't necessarily run into the problems. It turns out that the ACVC's made the same assumption, that pragma elaborating package Report was sufficient to avoid PROGRAM_ERROR. In fact, Report "with"s Text-IO, so it is quite possible that a call on Report during elaboration will die somewhere in Text-IO with PROGRAM_ERROR. The newest ACVC suite includes a pragma ELABORATE(Text_IO); on the report package body.
callen@ada-uts (05/15/86)
This is, of course, not really an answer (stt furnished THAT), but I tried your particular program on my favorite Ada compiler (the Intermetrics MVS Ada compiler) and it worked. This proves nothing, except the willingness of certain programmers (ME) to feed source code to their compiler and see what happens :-) -- Jerry Callen ...(ima,ihnp4)!inmet!ada-uts!callen