CVS difference for arm/source/03c.mss

Differences between 1.71 and version 1.72
Log of other versions for file arm/source/03c.mss

--- arm/source/03c.mss	2006/02/16 06:48:54	1.71
+++ arm/source/03c.mss	2006/02/25 04:46:43	1.72
@@ -1,9 +1,9 @@
- @Part(03, Root="ada.mss")
+@Part(03, Root="ada.mss")
 
-@Comment{$Date: 2006/02/16 06:48:54 $}
+@Comment{$Date: 2006/02/25 04:46:43 $}
 
 @Comment{$Source: e:\\cvsroot/ARM/Source/03c.mss,v $}
-@Comment{$Revision: 1.71 $}
+@Comment{$Revision: 1.72 $}
 
 @LabeledClause{Tagged Types and Type Extensions}
 
@@ -871,7 +871,7 @@
   working with the returned string easier, and is consistent with many other
   string-returning functions in Ada. This is technically an inconsistency; if a
   program depended on some other lower bound for the string returned from one
-  of these functions, it could fail when complied with Ada 2005. Such code is
+  of these functions, it could fail when compiled with Ada 2005. Such code is
   not portable even between Ada 95 implementations, so it should be very
   rare.>}
 @end{Inconsistent95}
@@ -4853,6 +4853,24 @@
      constraint is defined in terms of a discriminant of the derived type
      (see @RefSecNum(Discriminants)).
   @end{ImplNote}
+  @begin{Honest}
+    @ChgRef{Version=[2],Kind=[AddedNormal],ARef=[AI95-00363-01]}
+    @ChgAdded{Version=[2],Text=[If X is a subcomponent that depends on
+    discriminants, and the subcomponent is a dereference of a general access
+    type whose designated type is unconstrained and whose discriminants
+    have defaults, the attribute is illegal. Such a
+    general access type can designate an unconstrained (stack) object.
+    Since such a type might not designate an object
+    constrained by its initial value, the 'Access is illegal @em the rule
+    says @lquotes@;is@rquotes constrained by its initial value, not
+    @lquotes@;might be@rquotes constrained by its initial value.
+    No other interpretation makes sense, as we can't have legality depending
+    on something (which object is designated) that is not known at
+    compile-time, and we surely can't allow this for unconstrained objects.
+    The wording of the rule
+    should be much clearer on this point, but this was discovered after the
+    completion of Amendment 1 when it was too late to fix it.]}
+  @end{Honest}
 
   @ChgRef{Version=[1],Kind=[Revised],Ref=[8652/0010],ARef=[AI95-00127-01]}
   @ChgRef{Version=[2],Kind=[Revised],ARef=[AI95-00363-01]}
@@ -5145,11 +5163,11 @@
 @key{type} Acc_Int @key{is access all} Integer;],Old=[]}
 
 @ChgRef{Version=[2],Kind=[AddedNormal]}
-@Chg{Version=[2],New=[   A_T : @key{aliased} T1;
-   Ptr : Acc_Int := A_T.C1'Access; -- @RI[Illegal in Ada 2005, legal in Ada 95]
-   A_T := (D1 => True);            -- @RI[Raised Constraint_Error in Ada 95, but does not]
-                                   -- @RI[in Ada 2005, so Ptr would become invalid when this]
-                                   -- @RI[is assigned (thus Ptr is illegal).]],Old=[]}
+@Chg{Version=[2],New=[A_T : @key{aliased} T1;
+Ptr : Acc_Int := A_T.C1'Access; -- @RI[Illegal in Ada 2005, legal in Ada 95]
+A_T := (D1 => True);            -- @RI[Raised Constraint_Error in Ada 95, but does not]
+                                -- @RI[in Ada 2005, so Ptr would become invalid when this]
+                                -- @RI[is assigned (thus Ptr is illegal).]],Old=[]}
 @end{Example}
 
 @ChgRef{Version=[2],Kind=[AddedNormal],ARef=[AI95-00363-01]}

Questions? Ask the ACAA Technical Agent