comp.lang.ada
 help / color / mirror / Atom feed
From: Adam Beneschan <adam@irvine.com>
Subject: Re: Gnat 2013 is out!
Date: Thu, 30 May 2013 09:21:39 -0700 (PDT)
Date: 2013-05-30T09:21:39-07:00	[thread overview]
Message-ID: <216781c4-2c69-4a7b-9f70-fc1101864000@googlegroups.com> (raw)
In-Reply-To: <ly4ndk92fh.fsf@pushface.org>

On Thursday, May 30, 2013 3:39:46 AM UTC-7, Simon Wright wrote:

> If I read the RM right (I probably don't), then because in this case I
> don't read the values assigned (they are dummies, after all) I should be
> OK. (ARM 6.2 (12/3)).

They may be dummies from the caller's point of view, but I'm concerned about the callee's.  The callee doesn't know that it's going to get passed "dummy" variables.  If it reads its own OUT parameters after it sets them, then there could be aliasing problems.

If the callee is a subprogram in a different package, then you really shouldn't assume anything about what's in the body of the callee, other than what's in the "contract" (whether the contract is expressed as Ada preconditions or just comments).  To me, this means that if the contract doesn't say it's OK for the parameters to overlap, then you should assume that the callee *could* do something that will go wrong if the parameters overlap.  However, if this is your own subprogram in your own package body calling another subprogram in the same package body, it's more acceptable (IMHO) to assume that overlapping is OK.

                         -- Adam


  reply	other threads:[~2013-05-30 16:21 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-29 13:36 Gnat 2013 is out! J-P. Rosen
2013-05-29 15:03 ` Simon Wright
2013-05-29 16:13   ` Simon Wright
2013-05-29 22:39     ` Randy Brukardt
2013-05-30  2:01       ` Adam Beneschan
2013-05-30  8:01         ` Bill Findlay
2013-05-30 23:09           ` Dennis Lee Bieber
2013-05-31  5:02             ` J-P. Rosen
2013-05-31 18:35             ` Bill Findlay
2013-05-30 10:39         ` Simon Wright
2013-05-30 16:21           ` Adam Beneschan [this message]
2013-05-30 19:53         ` Randy Brukardt
2013-05-31  7:41           ` Dmitry A. Kazakov
2013-05-31 11:30           ` Stefan.Lucks
2013-05-31 12:03             ` Niklas Holsti
2013-05-31 22:07             ` Randy Brukardt
2013-06-01 11:51               ` Georg Bauhaus
2013-06-03 14:52                 ` Adam Beneschan
2013-06-04 17:42                   ` Wesley Pan
2013-06-04 18:34                     ` Adam Beneschan
2013-06-04 19:00                       ` Wesley Pan
2013-06-05 15:40                     ` Eryndlia Mavourneen
2013-06-11  2:39                   ` Randy Brukardt
2013-06-11  6:31                     ` Georg Bauhaus
2013-06-19 21:57                       ` Randy Brukardt
2013-05-30  0:31 ` Dennis Lee Bieber
2013-05-31 16:12 ` dptrash
2013-06-01  5:10   ` Stephen Leake
2013-06-01  6:00   ` Per Sandberg
2013-06-01  6:46   ` J-P. Rosen
2013-06-01 15:22     ` Bill Findlay
2013-08-27 14:08   ` Yannick Duchêne (Hibou57)
2013-08-27 20:05     ` wilson
2013-08-27 22:59       ` Dennis Lee Bieber
2013-08-28  7:35         ` Dmitry A. Kazakov
2013-08-28 23:39           ` Dennis Lee Bieber
2013-06-07  2:41 ` gautier_niouzes
2013-06-07 15:52 ` mjsilva
2013-06-07 20:15   ` Dmitry A. Kazakov
2013-06-09 18:51     ` MatthiasR
2013-06-08  6:22   ` Simon Wright
2013-06-08 23:23     ` mjsilva
2013-06-10 11:07   ` Rego, P.
2013-06-13 13:30     ` Rego, P.
2013-06-17  6:35       ` Jacob Sparre Andersen
2013-06-22  8:17         ` MatthiasR
2014-03-18  0:04           ` Rego, P.
2013-06-11  7:52 ` Maciej Sobczak
2013-06-11  9:35   ` J-P. Rosen
2013-06-11 12:09   ` John Doe
2013-06-12  7:58 ` Maciej Sobczak
2013-06-12 11:01   ` G.B.
2013-06-12 20:01   ` Robert A Duff
2013-06-12 20:36     ` Georg Bauhaus
2013-06-13  7:38     ` Maciej Sobczak
replies disabled

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