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

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

--- ai12s/ai12-0396-1.txt	2020/11/26 02:27:02	1.3
+++ ai12s/ai12-0396-1.txt	2020/11/28 07:41:38	1.4
@@ -214,12 +214,8 @@
 Add after AARM 13.1(8.aa):
 
   * Object_Size clause
-  
-Modify 13.1(9.1/5):
 
-  An expression or name that {causes freezing of} [freezes] an entity
-  shall not occur within an aspect_specification that specifies a
-  representation or operational aspect of that entity.
+Delete 13.1(9.1/5) [this was moved to 13.1.1]
   
 Modify 13.1(9.3/5):
 
@@ -256,7 +252,13 @@
   specification for such an aspect}[If a specification of a
   representation or operational aspect is not supported by the
   implementation, it] is illegal or raises an exception at run time.
-  
+
+    {AARM Ramification: There is an Implementation Permission below that allows
+    an implementation to put restrictions on any representation aspect;
+    this rule applies if that permission is used for an aspect. This rule
+    only applies to an operational aspect if the aspect explicitly allows the
+    aspect to not be supported.}
+
 Modify 13.1(15.1/3):
 
   In contrast, whether {type-related} operational aspects are inherited
@@ -310,8 +312,10 @@
   subtype-specific,} inherited), then that aspect of the entity is as
   specified. Otherwise, the aspect of the entity has the default value
   for that aspect. {[Redundant:  For aspects that are neither
-  type-related nor subtype-specific, the terms /specified/ and /directly
-  specified/ are equivalent.]}
+  type-related nor subtype-specific, the terms "specified" and "directly
+  specified" are equivalent.]}
+
+  {AARM Proof: Aspect inheritance is only defined for types and subtypes.}
 
 Modify 13.1(18.2/3)
 
@@ -332,6 +336,12 @@
    Ada 202x, as a number of aspects are allowed on formals in that
    later language version.} ...
 
+Add after 13.1.1(13/3):
+
+  An expression or name that causes freezing of an entity
+  shall not occur within an aspect_specification that specifies a
+  representation or operational aspect of that entity.
+
 Add after 13.1.1(18.1/4):
 
   If a given aspect is type-related and inherited, then within an
@@ -567,16 +577,6 @@
 Alignment clauses) or @i<type-related> (all others). Subtype-specific aspects 
 may differ for different subtypes of the same type.
 
-!corrigendum 13.1(9.1/4)
-
-@dinsa
-An operational item that directly specifies an aspect of an entity shall
-appear before the entity is frozen (see 13.14).
-@dinst
-An @fa<expression> or @fa<name> that freezes an entity shall not occur within
-an @fa<aspect_specification> that specifies a representation or operational
-aspect of that entity.
-
 !corrigendum 13.1(9.3/5)
 
 @drepl
@@ -607,13 +607,68 @@
 generic formal parameter are the same as those of the actual. Specification
 of a type-related representation aspect is not allowed for a descendant of 
 a generic formal untagged type.
+
+!corrigendum 13.1(13/3)
+
+@drepl
+If a specification of a representation or operational aspect is not supported
+by the implementation, it is illegal or raises an exception at run time.
+@dby
+The specification of certain language-defined aspects need not be supported 
+by all implementations; in such an implementation, the specification for such
+an aspect is illegal or raises an exception at run time.
 
-!comment 13.1(13/3)
 !comment 13.1(15.1/3)
-!comment 13.1(18.1/3)
-!comment 13.1(18.2/3)
-!comment 13.1(18.3/5)
 
+!corrigendum 13.1(18.1/3)
+
+@drepl
+If an operational aspect is @i<specified> for an entity (meaning that it is
+either directly specified or inherited), then that aspect of the entity is as
+specified. Otherwise, the aspect of the entity has the default value for
+that aspect.
+@dby
+If an operational aspect is @i<specified> for an entity (meaning that it is
+either directly specified or, if type-related or subtype-specific, inherited),
+then that aspect of the entity is as specified. Otherwise, the aspect of the 
+entity has the default value for that aspect. For aspects that are neither
+type-related nor subtype-specific, the terms "specified" and "directly
+specified" are equivalent.
+
+!corrigendum 13.1(18.2/3)
+
+@drepl
+An @fa<aspect_specification> or representation item that specifies a
+representation aspect that would have been chosen in the absence of the
+@fa<aspect_specification> or representation item is said to be @i<confirming>.
+The aspect value specified in this case is said to be a
+@i<confirming> representation aspect value. Other values of the aspect
+are said to be @i<nonconfirming>, as are the @fa<aspect_specification>s and
+representation items that specified them.
+@dby
+An @fa<aspect_specification> or representation item that specifies a
+representation aspect that would have been chosen in the absence of the
+@fa<aspect_specification> or representation item is said to be @i<confirming>.
+The aspect value specified in this case is said to be a
+@i<confirming> representation aspect value. Other values of the aspect
+are said to be @i<nonconfirming>, as are the @fa<aspect_specification>s and
+representation items that specified them. Similarly, an @fa<aspect_specification>
+or operational item that specifies an operational aspect to be the same as the
+definition it would have by default is said to be @i<confirming>;
+otherwise it is @i<nonconfirming>.
+
+!corrigendum 13.1.1(13/3)
+
+@dinsa
+If the first freezing point of the associated entity comes before the end of 
+the immediately enclosing declaration list, then each usage name in the 
+@fa<aspect_definition> shall resolve to the same entity at the first freezing
+point as it does at the end of the immediately enclosing declaration list.
+@dinst
+An @fa<expression> or @fa<name> that causes freezing of an entity shall not
+occur within an @fa<aspect_specification> that specifies a representation or
+operational aspect of that entity.
+
 !corrigendum 13.1.1(18.1/4)
 
 @dinsa
@@ -731,6 +786,24 @@
 since it completely changes the meaning of the previous wording (showing 
 changes when switching the meaning 180 degrees is more confusing than 
 helpful).
+
+****************************************************************
+
+[From the Editor - November 27, 2020]
+
+We have in 13.1(9.1/5):
+ 
+  An expression or name that causes freezing of an entity shall not 
+  occur within an aspect_specification that specifies a representation 
+  or operational aspect of that entity.
+
+This rule is solely about aspect_specifications. It doesn't have anything to
+do with aspects in general, or any representation or operational items. Rules
+like that belong in 13.1.1 (the aspect_specification clause). So I'd suggest
+moving this rule after 13.1.1(13/3) (which is also about freezing).
+
+Tucker Taft replied:
+That makes sense. Probably could be part of (13/3) rather than a new paragraph.
 
 ****************************************************************
 

Questions? Ask the ACAA Technical Agent