CVS difference for ai12s/ai12-0059-1.txt
--- ai12s/ai12-0059-1.txt 2016/04/22 03:41:42 1.12
+++ ai12s/ai12-0059-1.txt 2016/04/26 04:23:44 1.13
@@ -1,4 +1,4 @@
-!standard 4.9.1(2/3) 16-04-20 AI12-0059-1/09
+!standard 4.9.1(2/3) 16-04-25 AI12-0059-1/10
!standard 13.1(14)
!standard 13.1(23)
!standard 13.3(9/3)
@@ -111,13 +111,15 @@
Add the following after 13.1(14.a/3):
- AARM Reason: The above existing static matching rule combined
- with the updated definition of static matching in 4.9.1(2)
- does not cause incompatibilities in existing Ada code that does not
- mention Object_Size. Note that 13.1(14) applies even to the
- implementation-defined value of Object_Size when it is not specified.
+ AARM Reason: The above static matching rule combined with the definition
+ of static matching in 4.9.1 (after updating to add Object_Size)
+ does not cause incompatibilities in existing Ada 2012 code that does not
+ mention Object_Size. But it does constrain the implementation-defined value
+ of Object_Size when it is not specified for a subtype; the above rule
+ applies even in that case. (The effects noted in the example above would
+ occur otherwise.)
- AARM Discussion: We need this rule even though static matching explicitly
+ We need this rule even though static matching explicitly
excludes confirming values of Object_Size. That's because a general access
type can designate any aliased object whose subtype statically matches the
the designated subtype. Since the Object_Size of a subtype determines the
@@ -125,6 +127,7 @@
allowed different Object_Sizes for statically matching subtypes, we'd be
allowing the access type to designate objects with differing numbers of
bits. That isn't going to work.
+ End AARM Reason.
Add Object_Size to 13.1(23):
Questions? Ask the ACAA Technical Agent