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

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

--- ai12s/ai12-0046-1.txt	2012/12/02 00:20:52	1.1
+++ ai12s/ai12-0046-1.txt	2012/12/28 03:05:37	1.2
@@ -1,5 +1,7 @@
-!standard 4.3.1(16/3)                               12-12-01    AI12-0046-1/01
+!standard 4.3.1(16/3)                               12-12-27    AI12-0046-1/02
 !class binding interpretation 12-12-01
+!status Amendment 202x 12-12-27
+!status ARG Approved 8-0-2  12-12-06
 !status work item 12-12-01
 !status received 12-08-01
 !priority Low
@@ -21,7 +23,7 @@
 There are currently three known situations where this allows constructs which
 would be legal for some but not all of the associated components.
 
-#1)
+1)
 
      type Rec (D : access Integer) is
         record F : access Integer; end record;
@@ -31,13 +33,13 @@
           X : aliased Integer;
           R : Rec := (D | F => X'Access); -- ok for D, not for F
 
-#2)
+2)
 
      type T1 is tagged record F1 : access Integer; end record;
 
      begin
         declare
-           type T2 is new T2 with record F2 : access Integer; end record;
+           type T2 is new T1 with record F2 : access Integer; end record;
             X : aliased Integer;
             T2_Obj : T2 :=
               (F1 | F2 => X'Access); -- ok for F2, not for F1
@@ -48,7 +50,7 @@
 
     Then the aggregate is
       (F1 | F2 => new Integer)
-    , which is legal only for the component with the non-null
+    which is legal only for the component with the non-null
     default storage pool.
 
 Clearly, any legality rules that are to be applied to a component expression in
@@ -69,8 +71,8 @@
 Replace AARM 4.3.1(16.c):
 
 AI83-00244 also requires that the expression shall be legal for each associated
-component. Ada 95 omitted this wording, as they thought they had eliminated
-all cases of difference. That probably was true, but Ada 2005 reintroduced
+component. Ada 95 omitted this wording, as it was thought that all cases of
+difference had been eliminated. That probably was true, but Ada 2005 reintroduced
 cases where the types match but the legality differs. For example:
 
      type Rec (D : access Integer) is record
@@ -109,6 +111,25 @@
 
 This problem isn't severe enough to introduce an incompatibility, so this
 option was dropped.
+
+!corrigendum 4.3.1(16/3)
+
+@drepl
+Each @fa<record_component_association> other than an @b<others> choice with
+a <@> shall have at least one associated component, and each needed component
+shall be associated with exactly one @fa<record_component_association>. If a
+@fa<record_component_association> with an @fa<expression> has two or more
+associated components, all of them shall be of the same type, or all of them
+shall be of anonymous access types whose subtypes statically match.
+@dby
+Each @fa<record_component_association> other than an @b<others> choice with
+a <@> shall have at least one associated component, and each needed component
+shall be associated with exactly one @fa<record_component_association>. If a
+@fa<record_component_association> with an @fa<expression> has two or more
+associated components, all of them shall be of the same type, or all of them
+shall be of anonymous access types whose subtypes statically match.
+In addition, Legality Rules are enforced separately for each associated
+component.
 
 !ACATS test
 

Questions? Ask the ACAA Technical Agent