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

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

--- ai12s/ai12-0227-1.txt	2017/04/21 05:43:53	1.2
+++ ai12s/ai12-0227-1.txt	2017/07/22 02:29:48	1.3
@@ -1,6 +1,8 @@
-!standard 4.4(10)                                      17-04-19  AI12-0227-1/01
+!standard 4.4(10)                                      17-07-21  AI12-0227-1/02
 !standard 8.6(29)
 !class binding interpretation 17-04-19
+!status Amendment 1-2012 17-07-21
+!status ARG Approved 6-0-3  17-06-16
 !status work item 17-04-19
 !status received 17-04-19
 !priority Low
@@ -31,7 +33,7 @@
        OK : constant Boolean := Mod'Modulus > 127;
     end Gen;
 
-Since a generic formal type is never static, this comparison operator is
+Since a generic formal type is never static, this comparison operator might be
 evaluated at runtime, having type root_integer. If Mod'Modulus is outside
 of the base range of root_integer (which can happen if the actual is a
 modular type having a modulus of System.Max_Binary_Modulus), the use of
@@ -61,15 +63,17 @@
 
 Add after 4.4(10):
 
-An expression [note: NOT in the syntax font] of a universal type is evaluated
-as if it has type root_integer (for universal_integer) or root_real (otherwise)
-unless the context identifies a specific type (in which case that type is used).
+An expression [note: NOT in the syntax font] of a numeric universal type is
+evaluated as if it has type root_integer (for universal_integer) or root_real
+(otherwise) unless the context identifies a specific type (in which case that
+type is used).
 
-AARM Ramification: This has no effect for static expressions; the value may
+AARM Ramification: This has no effect for a static expression; its value may
 be arbitrarily small or large since no specific type is expected for any
 expression for which this rule specifies one of the root types. The only effect
-of this rule is to allow Constraint_Error to be raised if value is outside of
-the base range of root_integer or root_real.
+of this rule is to allow Constraint_Error to be raised if the value is outside
+of the base range of root_integer or root_real when the expression is not
+static.
 
 AARM Reason: This rule means that implementations don't have to support
 unlimited range math at runtime for universal expressions. Note that
@@ -84,7 +88,7 @@
 extra-range runtime math solely for the purpose of evaluating universal
 integer expressions. Once the substantial work of implementing such math
 was expended, one would hope that users could have the benefit -- but in
-such a case, universal expressions would still have to even more range.
+such a case, universal expressions would still have to have even more range.
 Ultimately, the implementer would be required to fully support runtime
 unlimited range math, a requirement that we're not ready to make on Ada
 compilers. And even if we did make such a requirement, it wouldn't make
@@ -100,7 +104,7 @@
 for integer types). Note that Constraint_Error is not required, but it is
 possible.
 
-This issue becomes more important given the the prefix expression of the Image
+This issue becomes more important given the prefix expression of the Image
 attribute can be universal integer (see AI12-0225-1). For instance:
 
     generic
@@ -132,12 +136,26 @@
 introduce a bug, but it's more likely to leave a bug in case some other way
 to cause this issue appears or gets introduced.
 
+!corrigendum 4.4(10)
+
+@dinsa
+The value of a @fa<primary> that is a @fa<name> denoting an object is the
+value of the object. 
+@dinst
+An expression of a numeric universal type is evaluated as if it has type
+@i<root_integer> (for @i<universal_integer>) or @i<root_real>
+(otherwise) unless the context identifies a specific type (in which case that
+type is used).
+
 !ASIS
 
 No ASIS effect.
 
 !ACATS test
 
+An ACATS C-Test could be created to test these cases, but it is of relatively
+low value as Constraint_Error is not required (just allowed). A test would have
+to check for the right answer or Constraint_Error.
 
 !appendix
 

Questions? Ask the ACAA Technical Agent