comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Pass by reference
Date: Fri, 9 Apr 2004 17:44:06 -0500
Date: 2004-04-09T17:44:06-05:00	[thread overview]
Message-ID: <107e9q6d28rv8a@corp.supernews.com> (raw)
In-Reply-To: 19b0e504.0404090444.376ab672@posting.google.com

"Dan McLeran" <dan.r.mcleran@seagate.com> wrote in message
news:19b0e504.0404090444.376ab672@posting.google.com...
> > The compiler is always free to choose either copy or reference for
> > passing parameters.
>
> This statement seems to contradict the RM and what you've said above.
> The way I read the RM, a by-reference type is passed by reference. No
> choice. A by-value type is passed by value. Again, no choice. The RM
> seems to indicate that the only time a compiler is free to choose is
> for the 'unspecified' types.

That's not quite true. The important thing is that the passing has the
semantics of by-reference or by-copy, not necessarily that that is used.

For instance, we've worked on targets where the standard calling convention
did not support copy back. In order to implement 'in out' parameters of
elementary types on those targets, we do the parameter passing by-reference,
and make a copy at the call-site to insure the by-copy semantics. (We also
use a similar trick for passing large [>32 bit] elementary objects.)

                 Randy.






  reply	other threads:[~2004-04-09 22:44 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-04-08 14:52 Pass by reference Dan McLeran
2004-04-08 18:21 ` Martin Krischik
2004-04-09 12:53   ` Dan McLeran
2004-04-13 12:42     ` Martin Krischik
2004-04-08 19:04 ` Jim Rogers
2004-04-09  3:24   ` Dan McLeran
2004-04-09  0:01 ` Stephen Leake
2004-04-09 12:38   ` Dan McLeran
2004-04-09 13:03     ` Dmitry A. Kazakov
2004-04-09 19:09       ` Dan McLeran
2004-04-10 10:49         ` Dmitry A. Kazakov
2004-04-11 12:43       ` Florian Weimer
2004-04-12 10:29         ` Dmitry A. Kazakov
2004-04-12 12:29           ` Samuel Tardieu
2004-04-13  8:46             ` Dmitry A. Kazakov
2004-04-10  1:42     ` Stephen Leake
2004-04-10 16:05       ` chris
2004-04-09 12:44   ` Dan McLeran
2004-04-09 22:44     ` Randy Brukardt [this message]
2004-04-09 14:44   ` Simon Wright
2004-04-09  1:15 ` Jeffrey Carter
2004-04-09  1:28   ` Pat Rogers
2004-04-10  1:05     ` Jeffrey Carter
2004-04-09 12:57   ` Dan McLeran
2004-04-10  1:16     ` Jeffrey Carter
2004-04-09  4:03 ` Steve
2004-04-09 14:50   ` Simon Wright
2004-04-09 17:12     ` Pat Rogers
2004-04-09 19:33       ` Vinzent 'Gadget' Hoefler
2004-04-10  6:33         ` Simon Wright
2004-04-13 10:26           ` Vinzent 'Gadget' Hoefler
2004-04-14 17:27             ` Simon Wright
2004-04-15  9:43               ` Vinzent 'Gadget' Hoefler
2004-04-17  7:59                 ` Simon Wright
2004-04-11 12:45   ` Florian Weimer
replies disabled

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