CVS difference for arm/source/06.mss

Differences between 1.29 and version 1.30
Log of other versions for file arm/source/06.mss

--- arm/source/06.mss	2004/12/01 01:09:22	1.29
+++ arm/source/06.mss	2004/12/06 03:57:38	1.30
@@ -1,10 +1,10 @@
 @Part(06, Root="ada.mss")
 
-@Comment{$Date: 2004/12/01 01:09:22 $}
+@Comment{$Date: 2004/12/06 03:57:38 $}
 @LabeledSection{Subprograms}
 
 @Comment{$Source: e:\\cvsroot/ARM/Source/06.mss,v $}
-@Comment{$Revision: 1.29 $}
+@Comment{$Revision: 1.30 $}
 
 @begin{Intro}
 @Defn{subprogram}
@@ -105,9 +105,9 @@
 
 @Syn{lhs=<parameter_profile>,rhs="[@Syn2{formal_part}]"}
 
-@ChgRef{Version=[2],Kind=[Revised],ARef=[AI95-00318-02]}
+@ChgRef{Version=[2],Kind=[Revised],ARef=[AI95-00231-01],ARef=[AI95-00318-02]}
 @Syn{lhs=<parameter_and_result_profile>,rhs="@Chg{Version=[2],New=[
-    ],Old=[]}[@Syn2{formal_part}] @key{return} @Syn2{subtype_mark}]@Chg{Version=[2],New=<
+    ],Old=[]}[@Syn2{formal_part}] @key{return}@Chg{Version=[2],New=< [@Syn2{null_exclusion}]>,Old=<>} @Syn2{subtype_mark}]@Chg{Version=[2],New=<
     [@Syn2{formal_part}] @key{return} @Syn2{access_definition}>,Old=<>}"}
 
 @Syn{lhs=<formal_part>,rhs="
@@ -202,13 +202,18 @@
 indicated by the initial reserved word, with name and profile as given by
 its specification.
 
-@ChgRef{Version=[2],Kind=[Revised],ARef=[AI95-00231-01]}
+@ChgRef{Version=[2],Kind=[Revised],ARef=[AI95-00231-01],ARef=[AI95-00318-02]}
 @PDefn2{Term=[nominal subtype], Sec=(of a formal parameter)}
 The nominal subtype of a formal parameter is
 the subtype @Chg{Version=[2],New=[determined],Old=[denoted]} by
 @Chg{Version=[2],New=[the optional @nt{null_exclusion} and ], Old=[]}the
 @nt{subtype_mark}, or defined by the @nt{access_definition}, in the
-@nt{parameter_specification}.
+@nt{parameter_specification}.@Chg{Version=[2],New=[ The nominal
+subtype of a function result is the subtype
+determined by the optional @nt{null_exclusion} and the @nt{subtype_mark}, or
+defined by the @nt{access_definition}, in the
+@nt{parameter_and_result_profile}.
+@PDefn2{Term=[nominal subtype], Sec=(of a function result)}], Old=[]}
 
 @ChgRef{Version=[2],Kind=[Revised],ARef=[AI95-00231-01],ARef=[AI95-00254-01],ARef=[AI95-00318-02]}
 @Defn{access parameter}
@@ -245,7 +250,18 @@
   @Chg{Version=[2],New=[For any access parameters of an access-to-subprogram
   type, the subtypes of the profile of the parameter type.],Old=[]}
 
-  For any result, the result subtype.
+  @ChgRef{Version=[2],Kind=[Revised],ARef=[AI95-00231-01],ARef=[AI95-00318-02]}
+  @Chg{Version=[2],New=[For any non-access result, the nominal subtype of the
+  function result.],Old=[For any result, the result subtype.]}
+
+  @ChgRef{Version=[2],Kind=[Added],ARef=[AI95-00318-02]}
+  @Chg{Version=[2],New=[For any access result type of an access-to-object type,
+  the designated subtype of the result type.],Old=[]}
+
+  @ChgRef{Version=[2],Kind=[Added],ARef=[AI95-00318-02]}
+  @Chg{Version=[2],New=[For any access result type of an access-to-subprogram
+  type, the subtypes of the profile of the result type.],Old=[]}
+
 @end{Itemize}
 
 @Redundant[@Defn2{Term=[types], Sec=(of a profile)}
@@ -346,8 +362,9 @@
 The syntax for @nt{overriding_indicator} is new.],Old=[]}
 
 @ChgRef{Version=[2],Kind=[AddedNormal],ARef=[AI95-00231-01]}
-@Chg{Version=[2],New=[An optional
-@nt{null_exclusion} can be used in a formal parameter declaration.],Old=[]}
+@Chg{Version=[2],New=[An optional @nt{null_exclusion} can be used in a formal
+parameter declaration. Similarly, an optional @nt{null_exclusion} can be used
+in a function result.],Old=[]}
 
 @ChgRef{Version=[2],Kind=[AddedNormal],ARef=[AI95-00318-02]}
 @Chg{Version=[2],New=[The return type of a function can be an
@@ -1422,9 +1439,11 @@
 as dead code).
 @end{Discussion}
 
+@ChgRef{Version=[2],Kind=[AddedNormal],ARef=[AI95-00231-01]}
 A @nt{function_call} denotes a constant, as defined in
-@RefSecNum{Return Statements}; the nominal subtype of the
-constant is given by the result subtype of the function.
+@RefSecNum{Return Statements}; the nominal subtype of the constant is
+given by the @Chg{Version=[2],New=[nominal],Old=[result]} subtype of the
+function@Chg{Version=[2],New=[ result],Old=[]}.
 @PDefn2{Term=[nominal subtype], Sec=(of the result of a @nt<function_call>)}
 @PDefn2{Term=[constant], Sec=(result of a @nt<function_call>)}
 @end{RunTime}
@@ -1530,6 +1549,13 @@
 helpful when defining custom arithmetic packages.],Old=[]}
 @end{Extend95}
 
+@begin{DiffWord95}
+@ChgRef{Version=[2],Kind=[AddedNormal],ARef=[AI95-00231-01]}
+@Chg{Version=[2],New=[Changed the definition of the nominal subtype of a
+@nt{function_call} to use the nominal subtype wording of 6.1, to take into
+account @nt{null_exclusion}s and access result types.],Old=[]}
+@end{DiffWord95}
+
 @LabeledSubClause{Parameter Associations}
 
 @begin{Intro}
@@ -1870,7 +1896,7 @@
 @Chg{Version=[2],New=[@PDefn2{Term=[return object], Sec=(extended_return_statement)}
 Within an @nt{extended_return_statement}, the @i{return object} is declared
 with the given identifier, with nominal subtype defined by the
-@nt{eturn_subtype_indication}.],Old=[]}
+@nt{return_subtype_indication}.],Old=[]}
 @end{StaticSem}
 
 @begin{RunTime}
@@ -2075,7 +2101,7 @@
 @key[return] Key_Value(Last_Index);   --@RI{ in a function body}@Chg{Version=[2],New=<
 @key[return] Node : Cell @key{do}           --@RI{ in a function body, see @RefSecNum{Incomplete Type Declarations} for Cell}
    Node.Value := Result;
-   Node.Succ := Next_Mode;
+   Node.Succ := Next_Node;
 @key{end} @key{return};>,Old=<>}
 @end{Example}
 @end{Examples}

Questions? Ask the ACAA Technical Agent