From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,baa6871d466e5af9 X-Google-Attributes: gid103376,public From: mheaney@ni.net (Matthew Heaney) Subject: Re: AQ&S Guidance on pragma Elaborate_Body Date: 1997/04/22 Message-ID: #1/1 X-Deja-AN: 236717810 References: <528878564wnr@diphi.demon.co.uk> Organization: Estormza Software Newsgroups: comp.lang.ada Date: 1997-04-22T00:00:00+00:00 List-Id: In article , bobduff@world.std.com (Robert A Duff) wrote: >>But isn't G2 supposed to elaborate G1? >> >>with G1; >>pragma Elaborate (G1); <<<--- >>package body G2 is >> package Inst_1 is new G1; >>end G2; > >No, G2 does not instantiate G1 during its (G2's) elaboration. In fact, >G2 doesn't do anything during elaboration, except to record the fact >that it has now been elaborated. > >But I >thought we were discussing this convention: X should have >pragma-Elaborate_All of Y if and only if X calls/instantiates/activates >some subprogram/generic/task in Y during X's elaboration (unless Y has >Pure, Preelab, or Elab_Body). And you asked, with respect to this >convention, whether it should be Elab instead of Elab_Body. OK, I almost understand. The elaboration of the generic itself is not very interesting: it's the elaboration of the instantiation that we need to think about carefully. The rules go like this: Why You Need Pragma Elaborate_All And Not Just Elaborate o An instantiation of a generic inside another generic (package) isn't really elaborated until the elaboration of the instantiation of the enclosing generic. So that's why we need pragma Elaborate_All and not just pragma Elaborate. o If you call a subprogram of a package you with'd during your elaboration, you need to pragma Elaborate_All, to cover elaboration of library units in the called subprogram. I think I've got it. Thank you, Bob, once again... Matt -------------------------------------------------------------------- Matthew Heaney Software Development Consultant (818) 985-1271