CVS difference for 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