CVS difference for ai05s/ai05-0196-1.txt
--- ai05s/ai05-0196-1.txt 2010/02/04 07:11:43 1.2
+++ ai05s/ai05-0196-1.txt 2010/02/04 23:33:14 1.3
@@ -1,4 +1,4 @@
-!standard 6.4.1(13) 10-02-03 AI05-0196-1/01
+!standard 6.4.1(13) 10-02-04 AI05-0196-1/02
!class binding interpretation 10-02-03
!status work item 10-02-03
!status received 09-12-09
@@ -16,15 +16,18 @@
Does the following program raise Constraint_Error? (No.)
-procedure M is
- type Integer_Access is access all Integer;
- procedure X (Y : out not null Integer_Access) is
+ procedure M is
+ type Integer_Access is access all Integer;
+
+ procedure X (Y : out not null Integer_Access) is
+ begin
+ Y := new Integer;
+ end X;
+
+ A : Integer_Access; -- initially null
begin
- Y := new Integer;
- end X;
- A : Integer_Access; -- initially null begin
- X (A); -- Raise Constraint_Error here?
-end M;
+ X (A); -- Raise Constraint_Error here?
+ end M;
That is, when passing an OUT mode parameter, is the implementation supposed to
do a not-null check on the way in? (No.)
@@ -43,10 +46,11 @@
!discussion
-It would be weird and unfriendly if the prior value of the actual parameter for
-an OUT parameter. There is no guarantee that an OUT parameter of an access type
-satisfies any access subtype constraint that applies to the formal, so there
-seems no reason to expect it to satisfy any null exclusion that might apply.
+It would be weird and unfriendly if the prior value of the actual parameter
+mattered for an OUT parameter. There is no guarantee that an OUT parameter of
+an access type satisfies any access subtype constraint that applies to the formal,
+so there seems no reason to expect it to satisfy any null exclusion that might
+apply.
--!corrigendum 13.13.2(1.2/2)
@@ -236,7 +240,8 @@
From: Tucker Taft
Sent: Thursday, December 10, 2010 2:48 PM
-"satisfies" *is* defined for null exclusions. See last sentence of 3.10(15/2). So I think the simplest might be:
+"satisfies" *is* defined for null exclusions. See last sentence of 3.10(15/2).
+So I think the simplest might be:
For an access type, the formal parameter is initialized from the value of the
actual, without [a constraint check]{checking whether the value satisfies any
Questions? Ask the ACAA Technical Agent