CVS difference for arm/source/sp.mss

Differences between 1.49 and version 1.50
Log of other versions for file arm/source/sp.mss

--- arm/source/sp.mss	2007/11/30 03:34:27	1.49
+++ arm/source/sp.mss	2008/07/12 04:04:48	1.50
@@ -1,7 +1,7 @@
 @comment{ $Source: e:\\cvsroot/ARM/Source/sp.mss,v $ }
-@comment{ $Revision: 1.49 $ $Date: 2007/11/30 03:34:27 $ $Author: Randy $ }
+@comment{ $Revision: 1.50 $ $Date: 2008/07/12 04:04:48 $ $Author: randy $ }
 @Part(sysprog, Root="ada.mss")
-@Comment{$Date: 2007/11/30 03:34:27 $}
+@Comment{$Date: 2008/07/12 04:04:48 $}
 @LabeledNormativeAnnex{Systems Programming}
@@ -1143,18 +1143,27 @@
-@Leading@;The form for pragmas Atomic, Volatile, Atomic_Components, and
-Volatile_Components is as follows:
+@Leading@;The form for pragmas Atomic, Volatile,
+@Chg{Version=[3],New=[Independent, ],Old=[]}Atomic_Components,@Chg{Version=[3],New=[],Old=[ and]}
+Volatile_Components@Chg{Version=[3],New=[, and Independent_Components],Old=[]}
+is as follows:
 @PragmaSyn`@key{pragma} @prag(Atomic)(@Syn2{local_name});'
 @PragmaSyn`@key{pragma} @prag(Volatile)(@Syn2{local_name});'
+@ChgAdded{Version=[3],Text=`@AddedPragmaSyn`Version=[3],@key{pragma} @prag<Independent>(@SynI{component_}@Syn2{local_name});''}
 @PragmaSyn`@key{pragma} @prag(Atomic_Components)(@SynI{array_}@Syn2{local_name});'
 @PragmaSyn`@key{pragma} @prag(Volatile_Components)(@SynI{array_}@Syn2{local_name});'
+@ChgAdded{Version=[3],Text=`@AddedPragmaSyn`Version=[3],@key{pragma} @prag<Independent_Components>(@Syn2{local_name});''}
@@ -1186,14 +1195,18 @@
 The @nt{local_name} in an Atomic or Volatile pragma shall resolve to denote
 either an @nt{object_declaration}, a non-inherited @nt{component_@!declaration},
-or a @nt{full_type_@!declaration}. The
-@SynI{array_}@nt{local_name} in an Atomic_@!Components or
+or a @nt{full_type_@!declaration}.@Chg{Version=[3],New=[ The
+@Syni{component_}@nt{local_name} in an Independent pragma
+shall resolve to denote a non-inherited @nt{component_declaration}.],Old=[]}
+The @SynI{array_}@nt{local_name} in an Atomic_@!Components or
 Volatile_@!Components pragma shall resolve to denote the declaration
 of an array type or an array object of an anonymous type.
+@Chg{Version=[3],New=[ The @nt{local_name} in an Independent_Components pragma
+shall resolve to denote the declaration of an array or record type or an
+array object of an anonymous type.],Old=[]}
@@ -1238,6 +1251,19 @@
+@ChgAdded{Version=[3],Text=[It is illegal to apply either an Independent or
+Independent_Components pragma to a component, object, or type if the
+implementation cannot provide the independent
+addressability required by the pragma (see @RefSecNum{Shared Variables}).]}
+@ChgAdded{Version=[3],Text=[It is illegal to specify a representation aspect for
+a component, object, or type to which pragma Independent or
+Independent_Components applies, in a way that
+prevents the implementation from providing the independent addressability
+required by the pragma.]}
@@ -1406,6 +1432,11 @@
   @ChgAdded{Version=[2],Text=[Added wording to clarify that a slice of an
   object of an atomic type is not atomic, just like a component of an atomic
   type is not (necessarily) atomic.]}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0009-1]}
+  @ChgAdded{Version=[3],Text=[@b<Corrigendum 2:> Added pragmas Independent
+  and Independent_Components to eliminate ambiguity about independent
+  addressibility.]}

Questions? Ask the ACAA Technical Agent