CVS difference for ai22s/ai22-0037-1.txt

Differences between 1.3 and version 1.4
Log of other versions for file ai22s/ai22-0037-1.txt

--- ai22s/ai22-0037-1.txt	2022/06/18 05:10:21	1.3
+++ ai22s/ai22-0037-1.txt	2022/06/24 04:08:54	1.4
@@ -1,6 +1,7 @@
-!standard 13.14(7.2/5)                                   22-01-27  AI22-0037-1/01
+!standard 13.14(7.2/5)                                   22-06-23  AI22-0037-1/02
 !standard 13.14(8/4)
 !class ramification 22-01-27
+!status ARG Approved 14-0-1  22-06-23
 !status work item 22-01-27
 !status received 21-06-11
 !priority Low
@@ -23,7 +24,7 @@
   
 Consider a static scalar subtype Foo where Foo'First and Foo'Last are static.
 
-In a situation where "Foo"  (or "Foo'Range") is pretty much synonymous with
+In a situation where "Foo" is pretty much synonymous with
 "Foo'First .. Foo'Last", does the equivalence break down with respect
 to freezing (because the cited freezing rule applies in the 2-expression case
 and no analogous freezing rule applies in the other case)?
@@ -96,14 +97,11 @@
      subtype OInt1 is Integer
          with Dynamic_Predicate => OInt1 in SInt1; -- (1)
  
-     subtype OInt2 is Integer
-         with Dynamic_Predicate => OInt2 in SInt2'Range; -- (2)
- 
      subtype OInt3 is Integer 
-         with Dynamic_Predicate => OInt3 in SInt3'First .. SInt3'Last; -- (3)
+         with Dynamic_Predicate => OInt3 in SInt3'First .. SInt3'Last; -- (2)
 
      subtype OInt4 is Integer 
-         with Dynamic_Predicate => OInt4 in SInt4'First+1 .. SInt4'Last-1; -- (4)
+         with Dynamic_Predicate => OInt4 in SInt4'First+1 .. SInt4'Last-1; -- (3)
 
   private
      for SInt1'Alignment use 1;  -- OK.
@@ -113,24 +111,18 @@
   end BDE0012;
 
 For (1), Sint1 is not a static expression, so SInt1 is not frozen until "end P". 
-
-For (2), SInt2'Range also is not a static expression. (Note that 4.9(7)
-requires an attribute_reference to "denote a scalar value"; SInt2'Range
-denotes a scalar range, not a scalar value.) So again, SInt2 is not frozen
-until "end P".
 
-For (3), however, SInt3'First and SInt3'Last are static expressions (they do
+For (2), however, SInt3'First and SInt3'Last are static expressions (they do
 "denote scalar values"), so they are freezing at the "private". Thus the later
 attribute_definition_clause is too late, and therefore is illegal. One can
-workaround the issue by using SInt3 or SInt3'Range in place of the explicit
-range.
+workaround the issue by using SInt3 in place of the explicit range.
 
-(4) demonstrates that it is not always possible to workaround the issue
+(3) demonstrates that it is not always possible to workaround the issue
 by rewriting the expression; it sometimes is necessary to move the use
 that requires an unfrozen type.
 
 Luckily, none of this has much effect if one uses only aspect_specifications
-to set aspects, as they are evaluated at the freezing point -- whereever that
+to set aspects, as they are evaluated at the freezing point -- wherever that
 turns out to be.
 
 !ACATS test
@@ -143,9 +135,9 @@
 will use all of one or all of the other. As such, it would seem to be making
 work for compiler implementers rather than testing something actually likely.
 
-Note that are already a couple of examples in test BDE0008 of 13.14(8/4).
+Note that there are already a couple of examples in test BDE0008 of 13.14(8/4).
 Additional examples could make sense (and would not be as unlikely as tests
-for 13.14(7.2/5).
+for 13.14(7.2/5)).
 
 !appendix
 

Questions? Ask the ACAA Technical Agent