CVS difference for ai05s/ai05-0024-1.txt
--- ai05s/ai05-0024-1.txt 2007/07/26 02:58:05 1.8
+++ ai05s/ai05-0024-1.txt 2007/10/09 19:27:13 1.9
@@ -1,4 +1,4 @@
-!standard 4.8(10.1/2) 07-06-18 AI05-0024-1/04
+!standard 4.8(10.1/2) 07-10-01 AI05-0024-1/05
!standard 3.10.2(14.1-14.4/2)
!standard 6.5(8/2)
!class binding interpretation 06-11-13
@@ -11,13 +11,13 @@
!subject Run-time accessibility checks
!summary
-Where appropriate, describe accessibility in terms of masters
+Where appropriate, accessibility is described in terms of masters
(dynamically) including a particular elaboration or evaluation,
-to solve prolems where there is a partial ordering rather than
+to solve problems where there is a partial ordering rather than
a full ordering between scopes (such as when tasking is involved).
-Handle some missing cases where an allocator is used to specify the
-value of an access discriminant, by saying that the level
+Some missing cases where an allocator is used to specify the
+value of an access discriminant are handled by saying that the level
of the allocated object is the same as that of the master that elaborates
the subtype_indication (or equivalently, that evaluates the allocator).
@@ -25,7 +25,7 @@
(1)
In Ada 95, accessibility checks for access parameters could be implemented
-by passing as implicit parameter which was a small integer representing
+by passing an implicit parameter which was a small integer representing
the static nesting level of the actual parameter. This model is explained
in an Implementation Note in AARM 3.10.2(22.u/2-22.tt).
@@ -67,14 +67,15 @@
Proc;
end;
-This piece of code is squirreling away an object of type T2 into a task
-that outlasts the type. We don't want this. The problem appears to be
-that the accessibility levels of Ref2 and T2 are incomparable.
-Statically, the nesting levels are both 2, so the check of 4.8(10.1/2)
-succeeds. Dynamically, the situation is muddled because "run-time nesting
-of masters" doesn't seem to apply here: both T and Proc are (dynamically)
-nested in the outer block, but it's not like one of them is (dynamically)
-into the other.
+This piece of code is squirreling away an object of type T2 (a type
+extension defined at a more nested level, a feature not available in
+Ada 95) into a task that outlasts the type. We don't want this.
+The problem appears to be that the accessibility levels of Ref2 and T2 are
+incomparable. Statically, the nesting levels are both 2, so the check of
+4.8(10.1/2) succeeds. Dynamically, the situation is muddled because
+"run-time nesting of masters" doesn't seem to apply here: both T and Proc
+are (dynamically) nested in the outer block, but it's not like one of them
+is (dynamically) nested in the other.
---
@@ -117,7 +118,7 @@
@i{coextension} of the object whose discriminant designates it, as well as
object of which the discriminated object is itself a coextension or
subcomponent. All coextensions of an object are finalized
- when the object is finalized (see 7.6).
+ when the object is finalized (see 7.6.1).
Add an AARM note after 3.10.2(29):
@@ -236,13 +237,13 @@
is said to be a @i<coextension> of the object whose discriminant designates it,
as well as of any object of which the discriminated object is itself a
coextension or subcomponent. All coextensions of an object are finalized when
-the object is finalized (see 7.6).
+the object is finalized (see 7.6.1).
@dby
In the first case, the allocated object
is said to be a @i<coextension> of the object whose discriminant designates it,
as well as of any object of which the discriminated object is itself a
coextension or subcomponent. All coextensions of an object are finalized when
-the object is finalized (see 7.6).
+the object is finalized (see 7.6.1).
!corrigendum 4.8(10.1/2)
Questions? Ask the ACAA Technical Agent