comp.lang.ada
 help / color / mirror / Atom feed
From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Ada and string literals
Date: Thu, 31 Jan 2013 17:24:22 -0500
Date: 2013-01-31T17:24:22-05:00	[thread overview]
Message-ID: <wcck3qtf0tl.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: 619a9cd8-ba12-4d25-b1b9-de30d416b54a@googlegroups.com

Adam Beneschan <adam@irvine.com> writes:

> On Wednesday, January 30, 2013 6:23:08 PM UTC-8, Robert A Duff wrote:
>
>> '[Unchecked_]Access is about object identity.
>> On the other hand 'Address is not -- two objects can have
>> the same address without being the same object.
>
> However, if two objects have the same 'Address, it's hard to imagine
> them not having the same 'Access as well, in practice.

It's easy to imagine that 'Access is illegal.  ;-)  That was part of my
point: a compiler can place two objects at the same address if
they are not aliased.  For example, if one of them has zero size.
And I wasn't thinking about the case where the user FORCES the
same address as in your example below.

>...  There aren't many cases where this is an issue, but:
>
>    procedure P (Addr : in System.Address) is
>
>       X : aliased T;
>       for X'Address use Addr;
>       pragma Import (Ada, X);
...
> Assuming T is a simple record type, for instance, I can't imagine
> XA=YA being false in any implementation, even though I believe X and Y
> are distinct objects by the RM's definitions.

For sure.  Are X and Y distinct objects?  I'd say the correct
answer is "Who cares?"  ;-)  Maybe this is a bug in the RM,
but I hope nobody pesters the ARG about it.  IMHO, bugs in the
RM should be reported to ARG only if fixing them would change some
compiler writer's behavior, or change some programmer's behavior.

- Bob



  reply	other threads:[~2013-01-31 22:24 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-30  0:44 Ada and string literals codeallergy
2013-01-30  7:08 ` Niklas Holsti
2013-01-30 11:50   ` Mart van de Wege
2013-01-30 13:52     ` Niklas Holsti
2013-01-30 16:09       ` Adam Beneschan
2013-02-01  0:54       ` Shark8
2013-02-01  9:03         ` Niklas Holsti
2013-02-01 14:58           ` Shark8
2013-01-30 16:52     ` codeallergy
2013-01-30 17:19       ` Adam Beneschan
2013-01-30 20:02       ` Simon Wright
2013-01-30 20:19         ` Georg Bauhaus
2013-01-30 22:06       ` Robert A Duff
2013-01-30 22:10         ` Jeffrey Carter
2013-01-31  2:23           ` Robert A Duff
2013-01-31 15:49             ` Adam Beneschan
2013-01-31 22:24               ` Robert A Duff [this message]
2013-02-01 21:16       ` gautier_niouzes
2013-02-02  1:55       ` Stephen Leake
2013-02-02 14:30         ` Robert A Duff
2013-01-31  9:20     ` ake.ragnar.dahlgren
2013-01-30 16:20   ` Robert A Duff
2013-02-01 13:20     ` Stephen Leake
2013-02-01 14:49       ` Robert A Duff
2013-02-01 17:23       ` Dmitry A. Kazakov
2013-02-01 20:22         ` Robert A Duff
2013-02-01 22:03           ` Dmitry A. Kazakov
2013-01-30 22:54 ` codeallergy
2013-02-01  0:50 ` Shark8
replies disabled

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