CVS difference for ai05s/ai05-0009-1.txt

Differences between 1.10 and version 1.11
Log of other versions for file ai05s/ai05-0009-1.txt

--- ai05s/ai05-0009-1.txt	2009/03/10 02:17:10	1.10
+++ ai05s/ai05-0009-1.txt	2009/03/12 04:48:47	1.11
@@ -1,4 +1,4 @@
-!standard 9.10(1)                                      09-03-09    AI05-0009-1/08
+!standard 9.10(1)                                      09-03-10    AI05-0009-1/09
 !standard 13.1(15/1)
 !standard 13.2(9)
 !standard 13.3(13)
@@ -9,7 +9,7 @@
 !standard C.6(13)
 !standard C.6(14)
 !class binding interpretation 06-03-21
-!status Amendment 201Z 09-02-21
+!status Amendment 201Z 09-03-09
 !status ARG Approved  6-0-2  09-02-21
 !status work item 08-10-10
 !status ARG Approved  8-0-0  08-06-21
@@ -58,21 +58,14 @@
 If two different objects, including nonoverlapping parts of the same
 object, are independently addressable, they can be manipulated
 concurrently by two different tasks without synchronization.
-Any two nonoverlapping objects are independently addressable if
-either object is atomic (see C.6) or if either object is specified
-as independently addressable (see C.6). Otherwise,
+Any two nonoverlapping objects are independently addressable if either
+object is specified as independently addressable (see C.6). Otherwise,
 two nonoverlapping objects are independently addressable
 except when they are both parts of a composite object for which
 a non-confirming representation item is used to specify
 packing, record layout, Component_Size, or convention, in which case
 it is unspecified whether the parts are independently addressable.
 
-AARM Ramification: An atomic object (including atomic components)
-is always independently addressable from any other nonoverlapping object.
-Any representation item which would prevent this from being true should
-be rejected, notwithstanding what this Standard says elsewhere.
-End AARM Ramification.
-
 
 Update the AARM notes in 13.1 (8.v, 8.w; 8.hh) to add the
 new pragmas independent and independent components.
@@ -164,15 +157,24 @@
 by the pragma.
 
 Add after C.6(14): [Static Semantics]
+
+Pragmas Independent and Independent_Components *specify as independently
+addressable* the named object or component(s), or in the case of a type, all
+objects of that type. All atomic objects are specified as independently
+addressable.
 
-Pragmas Independent and Independent_Components *specify independent addressibility*
-for the named object or component(s), or in the case of a type, for objects of that type.
 
 AARM Ramification: If the compiler cannot guarantee that an object
 (including a component) to which pragma Independent or pragma
 Independent_Components applies is independently addressable from
 any other nonoverlapping object, then the pragma must be rejected.
 
+Similarly, an atomic object (including atomic components)
+is always independently addressable from any other nonoverlapping object.
+Any representation item which would prevent this from being true should
+be rejected, notwithstanding what this Standard says elsewhere.
+End AARM Ramification.
+
 !discussion
 
 The problem to be addressed is demonstrated by the following (on a
@@ -270,8 +272,7 @@
 object, are @i<independently addressable>, they can be manipulated
 concurrently by two different tasks without synchronization.
 Any two nonoverlapping objects are independently addressable if
-either object is atomic (see C.6) or if either object is specified
-as independently addressable (see C.6). Otherwise,
+either object is specified as independently addressable (see C.6). Otherwise,
 two nonoverlapping objects are independently addressable
 except when they are both parts of a composite object for which
 a non-confirming representation item is used to specify
@@ -391,8 +392,10 @@
 @dinsa
 These pragmas are representation pragmas (see 13.1).
 @dinst
-Pragmas Independent and Independent_Components @i<specify independent addressibility>
-for the named object or component(s), or in the case of a type, for objects of that type.
+Pragmas Independent and Independent_Components @i<specify as independently
+addressable> the named object or component(s), or in the case of a type, all
+objects of that type. All atomic objects are specified as independently
+addressable.
 
 !ACATS Tests
 

Questions? Ask the ACAA Technical Agent