CVS difference for ai12s/ai12-0097-1.txt

Differences between 1.1 and version 1.2
Log of other versions for file ai12s/ai12-0097-1.txt

--- ai12s/ai12-0097-1.txt	2014/02/13 05:27:47	1.1
+++ ai12s/ai12-0097-1.txt	2014/07/16 03:02:06	1.2
@@ -1,5 +1,7 @@
-!standard 6.5(8/3)                                     14-02-12  AI05-0097-1/01
+!standard 6.5(8/3)                                     14-07-15  AI05-0097-1/02
 !class binding interpretation 14-02-12
+!status Corrigendum 2015 14-07-15
+!status ARG Approved 7-0-0  14-06-28
 !status work item 14-02-12
 !status received 14-01-29
 !priority Low
@@ -9,10 +11,10 @@
 !summary
 
 The tag of a return object is that of the return type if that is specific.
-Otherwise, it is that the return expression of a simple return statement,
+Otherwise, it is that of the return expression of a simple return statement,
 or the initializing expression of an extended return statement, unless
-that statement has a subtype_indication of a specific type, then the
-tag of that type is used.
+that return statement has a subtype_indication of a specific type, in which
+case the tag of that type is used.
 
 !question
 
@@ -55,7 +57,7 @@
 
 AARM To Be Honest: The expression here is the return expression if the return
 statement is a simple_return_statement, and the initializing expression
-of teh extended_return_object_declaration if the return statement is an
+of the extended_return_object_declaration if the return statement is an
 extended_return_statement (ignoring any inner simple_return_statements, which
 necessarily cannot have an expression, and any other expressions inside of the
 extended_return_statement).
@@ -71,6 +73,28 @@
 in this wording, so there is no confusion about which subtype_indication we're
 talking about -- the current syntax of an extended_return_statement doesn't
 directly include any subtype_indication.
+
+!corrigendum 6.5(8/3)
+
+@drepl
+If the result type of a function is a specific
+tagged type, the tag of the return object is that
+of the result type. If the result type is class-wide, the tag of the
+return object is that of the type of the @fa<subtype_indication>
+if it is specific, or otherwise that of the value of the @fa<expression>. A
+check is made that the master of the type identified by the tag of the result
+includes the elaboration of the master that elaborated the function body. If
+this check fails, Program_Error is raised.
+@dby
+If the result type of a function is a specific tagged type, the tag of the
+return object is that of the result type. If the result type is class-wide,
+the tag of the return object is that of the value of the @fa<expression>,
+unless the return object is defined by an @fa<extended_return_object_declaration>
+with a @fa<subtype_indication> that is specific, in which case it is that of
+the type of the @fa<subtype_indication>. A check is made that the master of
+the type identified by the tag of the result includes the elaboration of the
+master that elaborated the function body. If this check fails, Program_Error
+is raised.
 
 !ASIS
 

Questions? Ask the ACAA Technical Agent