From: stt@spock.camb.inmet.com (Tucker Taft)
Subject: Re: Ada 9X question: accessibility
Date: Mon, 14 Nov 1994 23:57:04 GMT
Date: 1994-11-14T23:57:04+00:00 [thread overview]
Message-ID: <CzA7v5.KIJ@inmet.camb.inmet.com> (raw)
In-Reply-To: 3a0hob$h5f@hopper.acm.org
In article <3a0hob$h5f@hopper.acm.org>,
There can be only one <papay@ACM.ORG> wrote:
>I was reading over the Ada 9X Reference Manual section on Access Types and
>wanted to make sure I understood "accessibility" correctly.
>I would appreciate any comments/confirmation on the following:
We have recently rewritten this part of the manual in terms
of "levels" to try to make it more "accessible" ;-).
It was certainly pretty inscrutable in version 5.0.
>procedure Example is
>
> type Access_Integer_Type is access all Integer;
> Ptr_1 : Access_Integer_Type;
> Int_1 : aliased Integer;
>
>begin
> Local_Block:
> declare
> Ptr_2 : Access_Integer_Type;
> Int_2 : aliased Integer;
> begin
> Ptr_1 := Int_1'Access; -- Legal.
> Ptr_1 := Int_2'Access; -- Illegal.
> Ptr_2 := Int_1'Access; -- Legal?
Legal.
> Ptr_2 := Int_2'Access; -- Illegal?
Illegal. It makes no difference where Ptr_2 is declared,
what matters is where the access type is declared.
If you had declared another access type inside the declare
block, and declared Ptr_3 to be of that type, then
Ptr_3 := Int_2'Access;
would be legal.
> end Local_Block;
>end Example;
>
>As I understand it, the first assignment
>statement is legal, but the second one
>is not because Int_2 is not dynamically accessible from the access type
>Access_Integer_Type (and it's pretty obvious this would leave a dangling
>reference). What about the last two assignment statements?
As you guessed, it makes no difference where Ptr_2 is declared,
what matters is where its type is declared. In the new terminology,
the accessibility level of Int_2 is statically deeper than
the accessibility level of Access_Integer_Type, so the 'Access
is illegal.
>Thanks in advance for your comments/help.
>
>
> | |
>David Papay | o |
>papay@acm.org (preferred) | ^/--- |
>dpapay@aol.com (alternate) | /> |
> | |
> | fleche! |
S. Tucker Taft stt@inmet.com
Ada 9X Mapping/Revision Team
Intermetrics, Inc.
Cambridge, MA 02138
next prev parent reply other threads:[~1994-11-14 23:57 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
1994-11-11 19:47 Ada 9X question: accessibility There can be only one
1994-11-14 23:57 ` Tucker Taft [this message]
1994-11-15 13:57 ` Norman H. Cohen
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox