CVS difference for ais/ai-00231.txt

Differences between 1.17 and version 1.18
Log of other versions for file ais/ai-00231.txt

--- ais/ai-00231.txt	2004/10/05 22:49:03	1.17
+++ ais/ai-00231.txt	2004/12/09 19:55:18	1.18
@@ -1,4 +1,4 @@
-!standard  3.10      (06)                        04-09-21  AI95-00231/11
+!standard  3.10      (06)                        04-12-04  AI95-00231/12
 !standard  3.2.3     (03)
 !standard  3.2.3     (05)
 !standard  3.7       (05)
@@ -12,9 +12,11 @@
 !standard  4.6       (49)
 !standard  4.6       (51)
 !standard  4.9.1     (02)
+!standard  6.1       (13)
 !standard  6.1       (15)
 !standard  6.1       (23)
 !standard  6.1       (24)
+!standard  6.4       (12)
 !standard  8.5.1     (04)
 !standard  8.6       (25)
 !standard  11.5      (11/1)
@@ -96,8 +98,9 @@
 Modify 3.10(12) to:
 
     An access_definition defines an anonymous general access type; the subtype
-    mark denotes its designated subtype. If the word constant appears,
-    the type is an access-to-constant type; otherwise it is an
+    mark denotes its designated subtype. If the general_access_modifier
+    constant appears, the type is an access-to-constant type;
+    otherwise it is an
     access-to-variable type. If a null_exclusion is present, or the
     access_definition is for a controlling access parameter (see 3.9.2), the
     access_definition defines an access subtype which excludes the null value;
@@ -116,6 +119,10 @@
    access type is the ... in the case of [a named] {an} access-to-object type,
    an allocator, which returns ...
 
+   Also, make the editorial correction of swapping "a non-intrinsic subprogram"
+   and "an aliased view of an object" in order to get the subprogram away from
+   the aliased view.
+
 Add the following sentence to the end of 3.10(14/1):
     The first subtype of a type defined by an access_type_definition excludes
     the null value if a null_exclusion is present; otherwise, the first subtype
@@ -157,6 +164,11 @@
     match if their designated subtypes statically match{, and either both or
     neither exclude null, and either both or neither are access-to-constant}.
 
+Modify 6.1(13):
+
+    parameter_and_result_profile ::=
+        [formal_part] RETURN [null_exclusion] subtype_mark
+
 Modify 6.1(15):
 
     parameter_specification ::=
@@ -168,11 +180,21 @@
     The nominal subtype of a formal parameter is the subtype [denoted]
     {determined} by the {optional null_exclusion and the} subtype_mark, or
     defined by the access_definition, in the parameter_specification.
+    {The nominal subtype of a function result is the subtype
+    determined by the optional null_exclusion and the subtype_mark in
+    the parameter_and_result_profile.}
 
 Modify 6.1(24):
     .... An access parameter is of an anonymous [general access-to-variable]
     {access} type (see 3.10). ...
 
+Replace 6.1(28) with:
+    For any result, the nominal subtype of the function result.
+
+Modify 6.4(12):
+    ...the nominal subtype of the constant is given by
+    the {nominal}[result] subtype of the function{ result}.
+
 Add to the end of 8.5.1(4), if AI-230 is adopted:
     In the case where the type is defined by an access_definition,
     the renamed entity shall be of an access-to-constant type if and
@@ -412,7 +434,8 @@
 (see 3.7) or an access parameter (see 6.1).
 @dby
 An @fa<access_definition> defines an anonymous general access type; the
-@fa<subtype_mark> denotes its @i<designated subtype>. If the reserved word
+@fa<subtype_mark> denotes its @i<designated subtype>. If the
+@fa<general_access_modifier>
 @b<constant> appears, the type is an access-to-constant type; otherwise it is
 an access-to-variable type. If a @fa<null_exclusion> is present, or the
 @fa<access_definition> is for a controlling access parameter (see 3.9.2), the
@@ -433,10 +456,10 @@
 For each access type, there is a null access value designating no entity at
 all. The null value of an access type is the default initial value of the type.
 Other values of an access type are obtained by evaluating an
-@fa<attribute_reference> for the Access or Unchecked_Access attribute of an
-aliased view of an object or non-intrinsic subprogram, or, in the case of an
-access-to-object type, an @fa<allocator>, which returns an access value
-designating a newly created object (see 3.10.2).
+@fa<attribute_reference> for the Access or Unchecked_Access attribute of
+a non-intrinsic subprogram or an aliased view of an object, or, in the
+case of an access-to-object type, an @fa<allocator>, which returns an
+access value designating a newly created object (see 3.10.2).
 
 !corrigendum 3.10(14/1)
 
@@ -516,6 +539,14 @@
 if their designated subtypes statically match, and either both or neither
 exclude null, and either both or neither are access-to-constant.
 
+!corrigendum 6.1(13)
+
+@drepl
+@xcode<@fa<parameter_and_result_profile ::= [formal_part] >@ft<@b<return>>@fa< subtype_mark>>
+@dby
+@xcode<@fa<parameter_and_result_profile ::=
+    [formal_part] >@ft<@b<return>>@fa< [null_exclusion] subtype_mark>>
+
 !corrigendum 6.1(15)
 
 @drepl
@@ -537,6 +568,9 @@
 The nominal subtype of a formal parameter is the subtype determined
 by the optional @fa<null_exclusion> and the @fa<subtype_mark>, or
 defined by the @fa<access_definition>, in the @fa<parameter_specification>.
+The nominal subtype of a function result is the subtype
+determined by the optional @fa<null_exclusion> and the @fa<subtype_mark> in
+the @fa<parameter_and_result_profile>.
 
 !corrigendum 6.1(24)
 
@@ -550,6 +584,22 @@
 @fa<access_definition>. An access parameter is of an anonymous access type (see
 3.10). Access parameters allow dispatching calls to be controlled by access
 values.
+
+!corrigendum 6.1(28)
+
+@drepl
+@xbullet<For any result, the result subtype.>
+@dby
+@xbullet<For any result, the nominal subtype of the function result.>
+
+!corrigendum 6.4(12)
+
+@drepl
+A @fa<function_call> denotes a constant, as defined in 6.5; the nominal subtype
+of the constant is given by the result subtype of the function.
+@dby
+A @fa<function_call> denotes a constant, as defined in 6.5; the nominal subtype
+of the constant is given by the nominal subtype of the function result.
 
 !corrigendum 8.5.1(4)
 

Questions? Ask the ACAA Technical Agent