CVS difference for ai05s/ai05-0009-1.txt
--- ai05s/ai05-0009-1.txt 2008/10/25 04:53:13 1.9
+++ ai05s/ai05-0009-1.txt 2009/03/10 02:17:10 1.10
@@ -1,4 +1,4 @@
-!standard 9.10(1) 08-10-22 AI05-0009-1/07
+!standard 9.10(1) 09-03-09 AI05-0009-1/08
!standard 13.1(15/1)
!standard 13.2(9)
!standard 13.3(13)
@@ -9,6 +9,8 @@
!standard C.6(13)
!standard C.6(14)
!class binding interpretation 06-03-21
+!status Amendment 201Z 09-02-21
+!status ARG Approved 6-0-2 09-02-21
!status work item 08-10-10
!status ARG Approved 8-0-0 08-06-21
!status work item 06-03-21
@@ -57,21 +59,15 @@
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), if a pragma Independent applies to
-either object (see C.6), or if either is a component of a composite object
-to which pragma Independent_Components applies (see C.6). Otherwise,
+either object is atomic (see C.6) or 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: 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)
+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.
@@ -169,11 +165,13 @@
Add after C.6(14): [Static Semantics]
-Pragmas Independent and Independent_Components guarantee independent addressability
-for the named object or component, or in the case of a type, for objects of that type
-(see 9.10).
+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.
-[This is marked redundant in the AARM.]
+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.
!discussion
@@ -272,9 +270,8 @@
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), if a @fa<pragma> Independent applies to
-either object (see C.6), or if either is a component of a composite object
-to which @fa<pragma> Independent_Components applies (see C.6). Otherwise,
+either object is atomic (see C.6) or 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
@@ -388,6 +385,14 @@
to which pragma Independent or Independent_Components applies, in a way that
prevents the implementation from providing the independent addressability required
by the pragma.
+
+!corrigendum C.6(14)
+
+@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.
!ACATS Tests
Questions? Ask the ACAA Technical Agent