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

Differences between 1.8 and version 1.9
Log of other versions for file ai12s/ai12-0377-1.txt

--- ai12s/ai12-0377-1.txt	2020/06/17 00:20:22	1.8
+++ ai12s/ai12-0377-1.txt	2020/07/09 07:15:40	1.9
@@ -1,8 +1,11 @@
-!standard 6.4.1(5.1/4)                                  20-06-15  AI12-0377-1/03
+!standard 6.4.1(5.1/4)                                  20-07-07  AI12-0377-1/04
 !standard 6.4.1(5.2/4)
 !standard 6.4.1(5.3/4)
+!standard 6.4.1(13.1/4)
 !standard 6.4.1(13.2/4)
 !standard 6.4.1(13.3/4)
+!standard 6.4.1(13.4/4)
+!standard 6.4.1(15/3)
 !class binding interpretation 20-06-13
 !status Amendment 1-2012 20-06-15
 !status ARG Approved 13-0-0  20-06-13
@@ -72,7 +75,8 @@
     type) that is an ancestor of both the target type and the operand type.
 
 [Editor's note: This removes the access part of this rule, and makes a
-version apply to all view conversions.]
+version apply to all view conversions. The access part of the rule is
+addressed in AI12-0378-1.]
 
 Revert 6.4.1(13.1/4) to its previous version, namely:
 
@@ -114,6 +118,82 @@
 the deinitialization noted in the problem worse (since it would clobber the
 current value of the object unconditionally, even if it would be in range),
 so that is not a viable solution to this problem.
+
+!corrigendum 6.4.1(5.1/4)
+
+@drepl
+If the mode is @b<out>, the actual parameter is a view conversion, and the
+type of the formal parameter is an access type or a scalar type that has
+the Default_Value aspect specified, then
+@dby
+If the mode is @b<out>, the actual parameter is a view conversion, and the
+type of the formal parameter is a scalar type, then
+
+!corrigendum 6.4.1(5.2/4)
+
+@drepl
+@xbullet<there shall exist a type (other than a root numeric type) that is
+an ancestor of both the target type and the operand type; and>
+@dby
+@xbullet<the target and operand type both do not have the Default_Value aspect
+specified; or>
+
+!corrigendum 6.4.1(5.3/4)
+
+@drepl
+@xbullet<in the case of a scalar type, the type of the operand of the
+conversion shall have the Default_Value aspect specified.>
+@dby
+@xbullet<the target and operand type both have the Default_Value aspect
+specified, and there shall exist a type (other than a root numeric
+type) that is an ancestor of both the target type and the operand type.>
+
+!corrigendum 6.4.1(13.1/4)
+
+@drepl
+@xinbull<For a scalar type that has the Default_Value aspect specified,
+the formal parameter is initialized from the value of the actual,
+without checking that the value satisfies any constraint or any
+predicate, except in the following case: if the actual parameter
+is a view conversion and either>
+@dby
+@xinbull<For a scalar type that has the Default_Value aspect specified, the
+formal parameter is initialized from the value of the actual, without checking
+that the value satisfies any constraint or any predicate;>
+
+!corrigendum 6.4.1(13.2/4)
+
+@ddel
+@xi2bull<there exists no type (other than a root numeric type) that
+is an ancestor of both the target type and the type of the
+operand of the conversion; or>
+
+!corrigendum 6.4.1(13.3/4)
+
+@ddel
+@xi2bull<the Default_Value aspect is unspecified for the type of the
+operand of the conversion>
+
+!corrigendum 6.4.1(13.4/4)
+
+@ddel
+@xindent<then Program_Error is raised;>
+
+!corrigendum 6.4.1(15)
+
+@dinsa
+@xinbull<For any other type, the formal parameter is uninitialized. If 
+composite, a view conversion of the actual parameter to the nominal 
+subtype of the formal is evaluated (which might raise Constraint_Error),
+and the actual subtype of the formal is that of the view conversion. If 
+elementary, the actual subtype of the formal is given by its nominal subtype.>
+@dinst
+@xinbull<Furthermore, if the type is a scalar type, and the actual parameter is a
+view conversion, then Program_Error is raised if either the target or
+the operand type has the Default_Value aspect specified, unless they
+both have the Default_Value aspect specified, and there is a type
+(other than a root numeric type) that is an ancestor of both the
+target type and the operand type.>
 
 !ASIS
 

Questions? Ask the ACAA Technical Agent