comp.lang.ada
 help / color / mirror / Atom feed
From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Implicit dereferences rational question
Date: Mon, 19 May 2014 18:44:43 -0400
Date: 2014-05-19T18:44:43-04:00	[thread overview]
Message-ID: <wcc7g5he6ck.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: llduds$47j$1@loke.gir.dk

"Randy Brukardt" <randy@rrsoftware.com> writes:

> "Victor Porton" <porton@narod.ru> wrote in message 
> news:llb1aa$gth$1@speranza.aioe.org...
>> Robert A Duff wrote:
>>> Victor Porton <porton@narod.ru> writes:
>>>
>>>> Why implicit dereferences use only access discriminants, not arbitrary
>>>> access fields?
>>>
>>> It helps prevent dangling pointers.
>>
>> In which way limiting to discriminants may prevent dangling pointers?
>
> Discriminants have a lengthy set of accessibility rules, which turn out to 
> be exactly what's needed for limiting dangling pointers. In particular, it's 
> almost never the case that one can make a copy of an access discriminant, 
> while that's easy for a "arbitrary access field".

Right; thanks, Randy.

Victor, I suggest you try to create dangling pointers via those
operations that return things with access discriminants.
When you see the error messages from the compiler, you
will likely understand why it's hard to create dangling
pointers by accident.

An alternative is to read and understand the accessibility
rules.  That's quite hard work!

And note that a discriminant of a named access type is not an
"access discriminant"; the access type has to be anonymous for
the special accessibility rules to kick in.

- Bob


  reply	other threads:[~2014-05-19 22:44 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-18 15:24 Implicit dereferences rational question Victor Porton
2014-05-18 17:08 ` Robert A Duff
2014-05-18 19:22   ` Victor Porton
2014-05-19 21:51     ` Randy Brukardt
2014-05-19 22:44       ` Robert A Duff [this message]
2014-05-20  7:29       ` Dmitry A. Kazakov
2014-05-20 21:26         ` Randy Brukardt
2014-05-21  7:36           ` Dmitry A. Kazakov
replies disabled

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