CVS difference for arm/source/03c.mss
--- arm/source/03c.mss 2007/02/06 04:48:37 1.77
+++ arm/source/03c.mss 2007/02/18 03:22:23 1.78
@@ -1,9 +1,9 @@
@Part(03, Root="ada.mss")
-@Comment{$Date: 2007/02/06 04:48:37 $}
+@Comment{$Date: 2007/02/18 03:22:23 $}
@Comment{$Source: e:\\cvsroot/ARM/Source/03c.mss,v $}
-@Comment{$Revision: 1.77 $}
+@Comment{$Revision: 1.78 $}
@LabeledClause{Tagged Types and Type Extensions}
@@ -2650,9 +2650,10 @@
-- @RI[See @RefSecNum{Incomplete Type Declarations} for Person_Name.]]}
@ChgRef{Version=[2],Kind=[AddedNormal]}
+@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0004-1]}
@ChgAdded{Version=[2],Text=[Queue_Error : @key{exception};
---@RI[ Append raises Queue_Error if Count(Q) = Max_Count(Q)]
---@RI[ Remove_First raises Queue_Error if Count(Q) = 0]]}
+--@RI[ Append raises Queue_Error if @Chg{Version=[3],New=[Cur_Count],Old=[Count]}(Q) = Max_Count(Q)]
+--@RI[ Remove_First raises Queue_Error if @Chg{Version=[3],New=[Cur_Count],Old=[Count]}(Q) = 0]]}
@ChgRef{Version=[2],Kind=[AddedNormal]}
@ChgAdded{Version=[2],Text=[@key{type} Synchronized_Queue @key{is synchronized interface and} Queue; --@RI[ see @RefSecNum{Example of Tasking and Synchronization}]
@@ -3521,10 +3522,11 @@
@Key{end} P.C;],Old=[]}
@ChgRef{Version=[2],Kind=[AddedNormal]}
+@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0005-1]}
@Chg{Version=[2],New=[@Key{with} P.C;
@Key{package body} P @Key{is}
- -- @RI{Ptr.all'Size is not legal here, but it is in the scope of a}
- -- @nt{nonlimited_with_clause} @RI{for P.}
+ -- @RI{Ptr.all'Size is not legal here@Chg{Version=[3],New=[.],Old=[, but it is in the scope of a]}}@Chg{Version=[3],New=[],Old=[
+ -- @nt{nonlimited_with_clause} @RI{for P.}]}
@Key{type} T @Key{is} ...
-- @RI{Ptr.all'Size is legal here.}
@Key{end} P;],Old=[]}
@@ -4045,6 +4047,13 @@
The Unchecked_Access attribute may be used to circumvent the
accessibility rules.]
+@begin{Discussion}
+@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0005-1]}
+@ChgAdded{Version=[3],Text=[The Unchecked_Access attribute acts as if the
+object was declared at library-level; this applies even when it is used as the
+value of anonymous access type.
+See @RefSecNum{Unchecked Access Value Creation}.]}
+@end{Discussion}
@Defn{statically deeper}
@Defn2{Term=[deeper],Sec=(statically)}
@@ -4225,10 +4234,19 @@
access-to-constrained subtype, etc.]}
@end{InnerItemize}
@end{Discussion}
+@begin{Ramification}
+@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0005-1]}
+@ChgAdded{Version=[3],Text=[If the value for this rule and the next one is
+derived from an Unchecked_Access attribute, the accessibility is library-level
+no matter what the accessibility level of the object is (see
+@RefSecNum{Unchecked Access Value Creation}).]}
+@end{Ramification}
@ChgRef{Version=[2],Kind=[Added]}
+@ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0004-1]}
@ChgAdded{Version=[2],Text=[If the value of the access discriminant is
-determined by a @nt{record_component_association} in an @nt{aggregate}, the
+determined by a @Chg{Version=[3],New=[@nt{record_component_association}],
+Old=[@ntf{component_association}]} in an @nt{aggregate}, the
accessibility level of the object or subprogram designated by the associated
value (or library level if the value is null);]}
@@ -4270,7 +4288,14 @@
actual is an @nt{allocator},
this is the accessibility level of the execution of the called
subprogram.]}
+@begin{Ramification}
+@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0005-1]}
+@ChgAdded{Version=[3],Text=[If the value of the actual is derived from an
+Unchecked_Access attribute, the accessibility is always library-level (see
+@RefSecNum{Unchecked Access Value Creation}).]}
+@end{Ramification}
+
@ChgRef{Version=[2],Kind=[Added],ARef=[AI95-00254-01]}
@ChgAdded{Version=[2],Text=[The accessibility level of the anonymous access type
of an access parameter specifying an access-to-subprogram type is
@@ -4335,10 +4360,17 @@
storage pool (or stack frame, in the case of a declared object).]}
@end{Ramification}
-The accessibility level of
-a view of an object or subprogram denoted by a dereference of an access value
-is the same as that of
-the access type.
+@ChgRef{Version=[3],Kind=[Revised],ARef=[AI05-0014-1]}
+The accessibility level of a view of an object or subprogram
+@Chg{Version=[3],New=[designated by],Old=[denoted by a dereference of]} an
+access value is the same as that of the access type.
+@begin{Discussion}
+@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0014-1]}
+@ChgAdded{Version=[3],Text=[This rule applies even when no dereference exists,
+for example when an access value is passed as an access parameter.
+This rule ensures that implementations are not required to include dynamic
+accessibility values with access values.]}
+@end{Discussion}
The accessibility level of
a component, protected subprogram, or entry
@@ -5228,6 +5260,12 @@
@ChgRef{Version=[2],Kind=[AddedNormal],ARef=[AI95-00230-01],ARef=[AI95-00254-01],ARef=[AI95-00318-02],ARef=[AI95-00385-01],ARef=[AI95-00416-01]}
@Chg{Version=[2],New=[Defined the accessibility of the various new kinds and
uses of anonymous access types.],Old=[]}
+
+@ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0014-1]}
+@ChgAdded{Version=[3],Text=[@b<Corrigendum 2:> Corrected the rules so that
+the accessibility of the object designated by an access object is that
+of the access type, even when no dereference is given. This correction
+applies to both Ada 95 and Ada 2005.]}
@end{DiffWord95}
Questions? Ask the ACAA Technical Agent