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.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,44aecd08962a2500 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-06-08 09:18:24 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!headwall.stanford.edu!newshub.sdsu.edu!elnk-pas-nf2!newsfeed.earthlink.net!wn14feed!worldnet.att.net!204.127.198.203!attbi_feed3!attbi.com!sccrnsc04.POSTED!not-for-mail Message-ID: <3EE361C5.7050100@attbi.com> From: "Robert I. Eachus" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.2) Gecko/20021120 Netscape/7.01 X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Visibility References: <009C830A.36D4A463.0015D3EC@netscape.net> <73yEa.45788$ca5.30987@nwrdny02.gnilink.net> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit NNTP-Posting-Host: 24.62.164.137 X-Complaints-To: abuse@attbi.com X-Trace: sccrnsc04 1055089103 24.62.164.137 (Sun, 08 Jun 2003 16:18:23 GMT) NNTP-Posting-Date: Sun, 08 Jun 2003 16:18:23 GMT Organization: AT&T Broadband Date: Sun, 08 Jun 2003 16:18:23 GMT Xref: archiver1.google.com comp.lang.ada:38834 Date: 2003-06-08T16:18:23+00:00 List-Id: Frank J. Lhota wrote: > Yes, only at startup. By the time that the main procedure starts execution, > everything it uses is elaborated. It is highly unlikely that anyone will accidently create a program which fails an Elaboration_Check after the main program begins execution. But there is a lot of elaboration that happens after the main program has started. Consider for example a task type. Its declaration is elaborated when the declarative part it appears in is elaborated, usually before the execution of the main program begins. But elaboration of the object of the task type occurs after it is created, which could occur as the result of an allocator: Bar: Task_Access; ... Bar := new Some_Task; If this is the first creation of an object of type Some_Task, and the elaboration of Some_Task fails an elaboaration check, the allocation will fail.