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,2866100c9a2b8ce7 X-Google-Attributes: gid103376,public From: Laurent.Guerby@enst-bretagne.fr (Laurent Guerby) Subject: Re: Free'ing extended types Date: 1996/04/29 Message-ID: <4xrat6vlse.fsf@lagrange.enst-bretagne.fr>#1/1 X-Deja-AN: 152096114 distribution: world sender: guerby@lagrange.enst-bretagne.fr references: <3183AC75.335C@ehs.ericsson.se> content-type: text/plain; charset=US-ASCII organization: Telecom Bretagne mime-version: 1.0 newsgroups: comp.lang.ada Date: 1996-04-29T00:00:00+00:00 List-Id: Robert Dewar writes : Jonas said ^^^^^ Jonas posted my email ;-). : " So there's nothing that could lead to an erroneous execution : (note : the X.all'access, the libc then does what's needed)." : : You seem to have the wrong idea of what erroneous is about. An erroneous : execution is one whose semantics is not specified by the reference : manual. You seem to think this means that it wlil blow up or do : something wrong. Not at all! It *may* blow up but it does not have to! : : You can look at the execution of a particular impementation and conclude : that a particular erroneous execution will have no ill effect on that : implementation, but that does not mean that the exeution is not erroneous! I think you missed my answer, I was just saying that, in this case, the "erroneous execution" was implementation dependant : " I *think* that it (erroneous/not erroneous) is implementation dependant, because for each access type the Storage_Pool (if not user-specified) is choosen "in an implementation-defined manner", see 13.11(17)." And I was pointing out the GNAT sources showing (I'm not 100% sure of my interpretation here) the use of one Storage_Pool (coded from the C library) for all these types. My conclusion was that the construction was not erroneous for the GNAT compiler. If another Ada compiler use different pools for the types in the example, as permitted by the RM 13.11(17), then the execution of the construct is erroneous. Then, of course, it can just work, don't work, crash your disk or nicely dies with Program_Error ;-). -- -- Laurent Guerby, student at Telecom Bretagne (France), Team Ada. -- "Use the Source, Luke. The Source will be with you, always (GPL)." -- http://www-eleves.enst-bretagne.fr/~guerby/ (GATO Project). -- Try GNAT, the GNU Ada 95 compiler (ftp://cs.nyu.edu/pub/gnat).