CVS difference for ais/ai-20218.txt

Differences between 1.10 and version 1.11
Log of other versions for file ais/ai-20218.txt

--- ais/ai-20218.txt	2004/01/23 04:59:29	1.10
+++ ais/ai-20218.txt	2004/03/02 04:45:01	1.11
@@ -1,9 +1,10 @@
-!standard 8.3(26)                                    03-12-03  AI95-00218-03/04
+!standard 8.3(26)                                    04-02-27  AI95-00218-03/05
 !standard 2.9(3)
 !standard 6.1(2)
 !standard 6.1(3)
 !standard 6.3(2)
 !standard 8.5.4(2)
+!standard 10.1.3(3)
 !standard 12.3(2)
 !class amendment 03-06-06
 !status Amendment 200Y 03-10-21
@@ -124,21 +125,21 @@
 Change the syntax in 6.1 to read:
 
 overriding_indicator ::= [not] overriding
-subprogram_declaration ::=
-               [overriding_indicator] subprogram_specification ;
-abstract_subprogram_declaration ::=
-   [overriding_indicator] subprogram_specification is abstract;
+subprogram_declaration ::= [overriding_indicator]
+                           subprogram_specification;
+abstract_subprogram_declaration ::= [overriding_indicator]
+                                    subprogram_specification is abstract;
 
 Change the first two lines of 6.3(2) to read:
 
-subprogram_body ::=
-               [overriding_indicator] subprogram_specification is
+subprogram_body ::= [overriding_indicator]
+                    subprogram_specification is
 
 Add to 8.3 after paragraph 26:
 
 If a subprogram_declaration, abstract_subprogram_declaration, subprogram_body,
-subprogram_renaming_declaration, or generic_instantiation of a subprogram has an
-overriding_indicator, then:
+subprogram_body_stub, subprogram_renaming_declaration, or generic_instantiation
+of a subprogram has an overriding_indicator, then:
   * the operation shall be a primitive operation for some type;
   * if the overriding_indicator is "overriding", then the operation shall
     override a homograph at the point of the declaration or body;
@@ -163,17 +164,25 @@
 
 Change the syntax in 8.5.4 to read
 
-subprogram_renaming_declaration ::= [overriding_indicator]
+subprogram_renaming_declaration ::=
+                  [overriding_indicator]
                   subprogram_specification renames callable_entity_name;
 
+Change the syntax in 10.1.3 to read
+
+subprogram_body_stub ::= [overriding_indicator]
+                         subprogram_specification is separate;
+
 Change the syntax in 12.3 to read
 
 generic_instantiation ::=
      package defining_program_unit_name is
         new generic_package_name [generic_actual_part];
-   | [overriding_indicator] procedure defining_program_unit_name is
+   | [overriding_indicator]
+     procedure defining_program_unit_name is
         new generic_procedure_name [generic_actual_part];
-   | [overriding_indicator] function defining_designator is
+   | [overriding_indicator]
+     function defining_designator is
         new generic_function_name [generic_actual_part];
 
 !example
@@ -199,10 +208,10 @@
 The forms "overriding" and "not overriding" are part of a
 subprogram_declaration (and other forms) and not the subprogram_specification.
 This is because we do not want them to be permitted in all syntactic situations
-which use subprogram specification such as generic subprogram declarations,
-formal subprogram parameters and subprogram body stubs. However, we do want
-them to apply to abstract subprograms, to bodies, to renamings and to generic
-instantiations. For example
+which use subprogram specification such as generic subprogram declarations and
+formal subprogram parameters. However, we do want them to apply to abstract
+subprograms, to bodies, to stubs, to renamings and to generic instantiations.
+For example
 
    overriding
    procedure Op(X: T) is abstract;
@@ -619,7 +628,7 @@
 convention @emdash programs may be written in whatever typeface is desired and
 available.
 @dby
-@b<Overriding> is a nonreserved keyword.
+@b<overriding> is a nonreserved keyword.
 
 NOTES@hr
 6 The reserved words appear in @b<lower case boldface> in this International
@@ -635,16 +644,16 @@
 @xcode<@fa<subprogram_declaration ::= subprogram_specification ;>>
 @dby
 @xcode<@fa<overriding_indicator ::= [>@ft<@b<not>>@fa<] >@ft<@b<overriding>>@fa<
-subprogram_declaration ::=
-    [overriding_indicator] subprogram_specification ;>>
+subprogram_declaration ::= [overriding_indicator]
+                           subprogram_specification ;>>
 
 !corrigendum 6.1(03)
 
 @drepl
 @xcode<@fa<abstract_subprogram_declaration ::= subprogram_specification >@ft<@b<is abstract>>@fa<;>>
 @dby
-@xcode<@fa<abstract_subprogram_declaration ::=
-   [overriding_indicator] subprogram_specification >@ft<@b<is abstract>>@fa<;>>
+@xcode<@fa<abstract_subprogram_declaration ::= [overriding_indicator]
+                                               subprogram_specification >@ft<@b<is abstract>>@fa<;>>
 
 !corrigendum 6.3(02)
 
@@ -657,7 +666,8 @@
    >@ft<@b<end>>@fa< [designator];>>
 @dby
 @xcode<@fa<subprogram_body ::=
-   [overriding_indicator] subprogram_specification >@ft<@b<is>>@fa<
+   [overriding_indicator]
+   subprogram_specification >@ft<@b<is>>@fa<
      declarative_part
    >@ft<@b<begin>>@fa<
       handled_sequence_of_statements
@@ -682,9 +692,9 @@
 as the corresponding declarations in the generic were not type conformant.
 @dinss
 If a @fa<subprogram_declaration>, @fa<abstract_subprogram_declaration>,
-@fa<subprogram_body>, @fa<subprogram_renaming_declaration>, or
-@fa<generic_instantiation> of a subprogram has an
-@fa<overriding_indicator>, then:
+@fa<subprogram_body>, @fa<subprogram_body_stub>,
+@fa<subprogram_renaming_declaration>, or @fa<generic_instantiation> of a
+subprogram has an @fa<overriding_indicator>, then:
 @xbullet<the operation shall be a primitive operation for some type;>
 @xbullet<if the @fa<overriding_indicator> is @b<overriding>, then the operation
 shall override a homograph at the point of the declaration or body;>
@@ -698,9 +708,18 @@
 @drepl
 @xcode<@fa<subprogram_renaming_declaration ::= subprogram_specification >@ft<@b<renames> @i<callable_entity_>>@fa<name;>>
 @dby
-@xcode<@fa<subprogram_renaming_declaration ::= [overriding_indicator]
+@xcode<@fa<subprogram_renaming_declaration ::=
+       [overriding_indicator]
        subprogram_specification >@ft<@b<renames> @i<callable_entity_>>@fa<name;>>
 
+!corrigendum 10.1.3(3)
+
+@drepl
+@xcode<@fa<subprogram_body_stub ::= subprogram_specification >@ft<@b<is separate>>@fa<;>>
+@dby
+@xcode<@fa<subprogram_body_stub ::= [overriding_indicator]
+                                    subprogram_specification >@ft<@b<is separate>>@fa<;>>
+
 !corrigendum 12.3(2)
 
 @drepl
@@ -715,9 +734,11 @@
 @xcode<@fa<generic_instantiation ::=
      >@ft<@b<package>>@fa< defining_program_unit_name >@ft<@b<is>
         @b<new> @i<generic_package_>>@fa<name [generic_actual_part];
-   | [overriding_indicator] >@ft<@b<procedure>>@fa< defining_program_unit_name >@ft<@b<is>
+   | [overriding_indicator]
+     >@ft<@b<procedure>>@fa< defining_program_unit_name >@ft<@b<is>
         @b<new> @i<generic_procedure_>>@fa<name [generic_actual_part];
-   | [overriding_indicator] >@ft<@b<function>>@fa< defining_designator >@ft<@b<is>
+   | [overriding_indicator]
+     >@ft<@b<function>>@fa< defining_designator >@ft<@b<is>
         <@b<new> @i<generic_function_>>@fa<name [generic_actual_part];>>
 
 !ACATS test

Questions? Ask the ACAA Technical Agent