comp.lang.ada
 help / color / mirror / Atom feed
From: Dennis Lee Bieber <wlfraed@ix.netcom.com>
Subject: Re: How to get nice with GNAT?
Date: Tue, 25 Nov 2014 13:33:01 -0500
Date: 2014-11-25T13:33:01-05:00	[thread overview]
Message-ID: <k8i97al3klufl1meqt9b4704mto1amp7nq@4ax.com> (raw)
In-Reply-To: 8194a204-7b15-463d-a2fd-4d3ba342fe97@googlegroups.com

On Tue, 25 Nov 2014 05:45:45 -0800 (PST), brbarkstrom@gmail.com declaimed
the following:


>2) An exception is raised without an exception handler in the called procedure:
>the exception is propagated back to the caller.  I believe a pass-by-copy
>parameter that is an "out" parameter in the interface propagates out to the
>caller with the last assigned value.
>

	<SNIP>

>These behaviors are consistent with what I've observed in the execution of the
>compiled versions of the code I provided in previous posts.  I think the only
>question about whether different compilers would implement this behavior is
>item 2), although I have not been able to find a clear statement in RM as
>to whether not passing back a pass-by-copy value is left to the implementer
>in the event of the exception being raised.

	Have to dig up some ancient history...

http://archive.adaic.com/standards/83rat/html/ratl-08-02.html#8.2.3
"""
If the execution of a subprogram is abandoned as the result of an exception
not handled locally, then the final value of an actual parameter that is
associated with a formal parameter of mode in out may depend on the
parameter passing mechanism: If by copy, the final value will still be the
initial value before the call.
"""

Does leave OUT only parameters hanging, unless one just takes the view that
IN OUT and OUT both rely upon copying from procedure local memory to return
parameter memory at the same point (and an IN OUT copies from the parameter
memory to local memory upon entry).

"""
The allowed mechanisms follow from the above considerations.

	a.	For scalar types, and for all modes, all parameter passing must be
achieved by copy. The same treatment applies to access types, for the
reasons given in the previous section. 

	b.	For record and array types, the language does not specify whether
parameter passing is achieved by reference or by copy. ...
"""
-- 
	Wulfraed                 Dennis Lee Bieber         AF6VN
    wlfraed@ix.netcom.com    HTTP://wlfraed.home.netcom.com/


  parent reply	other threads:[~2014-11-25 18:33 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-21 11:41 How to get nice with GNAT? Natasha Kerensikova
2014-11-21 12:42 ` Björn Lundin
2014-11-21 22:55 ` Randy Brukardt
2014-11-21 23:13   ` Björn Lundin
2014-11-22  9:45   ` How to get nice traceback " Natasha Kerensikova
2014-11-22  9:57     ` Dmitry A. Kazakov
2014-11-24 22:35     ` Randy Brukardt
2014-11-22 10:11 ` How to get nice " gautier_niouzes
2014-11-22 10:40   ` Natasha Kerensikova
2014-11-22 22:44 ` brbarkstrom
2014-11-22 23:24   ` Jeffrey Carter
2014-11-23 18:06   ` Björn Lundin
2014-11-23 16:13 ` brbarkstrom
2014-11-23 16:18   ` J-P. Rosen
2014-11-23 17:02   ` Jeffrey Carter
2014-11-23 17:41 ` brbarkstrom
2014-11-23 19:22   ` Simon Wright
2014-11-23 20:49   ` Jeffrey Carter
2014-11-24  3:05     ` brbarkstrom
2014-11-24  6:25       ` Jeffrey Carter
2014-11-24 14:39         ` brbarkstrom
2014-11-24 17:42       ` Dennis Lee Bieber
2014-11-25 13:45         ` brbarkstrom
2014-11-25 15:07           ` ake.ragnar.dahlgren
2014-11-25 15:51             ` brbarkstrom
2014-11-25 16:52             ` Jeffrey Carter
2014-11-25 19:18             ` G.B.
2014-11-25 20:47               ` brbarkstrom
2014-11-25 22:12             ` Randy Brukardt
2014-11-25 23:30               ` Simon Wright
2014-11-26  1:25                 ` G.B.
2014-11-26  7:35                   ` Simon Wright
2014-11-26 11:55                     ` Georg Bauhaus
2014-11-26 13:06                       ` Dmitry A. Kazakov
2014-11-26 13:36                         ` brbarkstrom
2014-11-26 21:27                         ` Randy Brukardt
2014-11-26 22:38                           ` brbarkstrom
2014-11-27  9:01                             ` Dmitry A. Kazakov
2014-11-27 13:53                               ` brbarkstrom
2014-11-27 17:19                                 ` Dmitry A. Kazakov
2014-12-01 22:25                                   ` Randy Brukardt
2014-12-02  8:42                                     ` Dmitry A. Kazakov
2014-12-03 21:41                                       ` Randy Brukardt
2014-12-06 12:02                                         ` Dmitry A. Kazakov
2014-12-08 22:45                                           ` Randy Brukardt
2014-12-09  8:51                                             ` Dmitry A. Kazakov
2014-12-09 23:14                                               ` Brad Moore
2014-12-09 17:59                                                 ` Dmitry A. Kazakov
2014-11-27  8:52                           ` Dmitry A. Kazakov
2014-11-26  6:18                 ` J-P. Rosen
2014-11-26  7:37                   ` Simon Wright
2014-11-26  8:41               ` Dmitry A. Kazakov
2014-11-25 18:33           ` Dennis Lee Bieber [this message]
2014-11-26  1:27             ` Dennis Lee Bieber
2014-11-26  3:29               ` brbarkstrom
2014-11-23 18:55 ` brbarkstrom
2014-11-23 19:30 ` brbarkstrom
2014-11-23 22:38   ` Simon Wright
2014-11-24  2:47     ` brbarkstrom
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox