CVS difference for ai12s/ai12-0038-1.txt

Differences between 1.8 and version 1.9
Log of other versions for file ai12s/ai12-0038-1.txt

--- ai12s/ai12-0038-1.txt	2013/11/22 01:55:50	1.8
+++ ai12s/ai12-0038-1.txt	2014/06/23 23:09:08	1.9
@@ -1,4 +1,4 @@
-!standard E.2.1(7/1)                           13-06-09    AI12-0038-1/03
+!standard E.2.1(7/1)                           14-06-23    AI12-0038-1/04
 !standard E.2.1(8/1)
 !class binding interpretation 12-11-28
 !status Corrigendum 2014 12-12-31
@@ -25,23 +25,20 @@
 !recommendation
 
 Shared passive packages are not allowed to declare access-to-class-wide
-types, but there is nothing preventing them from referencing an access-to-
-class-wide type declared in a declared-pure package.  We propose to
-disallow using access types declared in declared-pure packages within
-a shared-passive package. In addition, when an access type from a
-declared-pure package is used in a shared-passive package, it is treated
-as though it were declared in the shared passive package as far as
-the special accessibility check given in E.2.1(8).
+types, but there is nothing preventing them from referencing an
+access-to-class-wide type declared in a declared-pure package.  We
+propose that when an access type from a declared-pure package is used in
+a shared-passive package, it is treated as though it were declared in
+the shared passive package as far as the special accessibility check
+given in E.2.1(8).
 
 !wording
 
 Modify E.2.1(7/1):
 
    * it shall not contain a library-level declaration of an access type that
-   designates a class-wide type, task type, or protected type with
-   entry_declarations{; further, it shall not contain a library-level declaration
-   that includes a name that denotes a subtype with a part having an access type
-   that is declared within a declared-pure package}.
+     designates a class-wide type, {or a type with a part that is of a}
+     task type, or protected type with entry_declarations.
 
 Modify E.2.1(8):
    Notwithstanding the definition of accessibility given in 3.10.2, the
@@ -56,18 +53,14 @@
 
 !discussion
 
-The accessibility rule of E.2.1(8) is intended to prevent pointers being created
-in a shared-passive package that point "back" into the data area of some
-particular active partition. Unfortunately, this doesn't work if the access
-type is declared in something other than a shared-passive package, in
-particular, in a declared-pure package. Therefore, we need to disallow the use
-of such "unprotected" access types in a shared-passive package.  That is the
-point of the wording added to E.2.1(7/1). Furthermore, any use of an
-access type in a shared-passive package can be problematic if it allows
-the creation of a pointer value from a shared-passive package back to the data
-area of some active partition. Hence, when an access type from a declared-
-pure package is used in a shared-passive package, it "inherits" the
-accessibility rules of the referencing shared-passive package.
+The accessibility rule of E.2.1(8) is intended to prevent pointers being
+created in a shared-passive package that point "back" into the data area
+of some particular active partition. Unfortunately, this doesn't work if
+the access type is declared in something other than a shared-passive
+package, in particular, in a declared-pure package. Hence, when an
+access type from a declared-pure package is used in a shared-passive
+package, it "inherits" the accessibility rules of the referencing
+shared-passive package.
 
 !corrigendum E.2.1(7/1)
 
@@ -77,10 +70,8 @@
 @fa<entry_declaration>s.>
 @dby
 @xbullet<it shall not contain a library-level declaration of an access type that
-designates a class-wide type, task type, or protected type with
-@fa<entry_declaration>s; further, it shall not contain a library-level declaration
-that includes a @fa<name> that denotes a subtype with a part having an access type
-that is declared within a declared-pure package.>
+designates a class-wide type, or a type with a part that is of a task type, or
+protected type with @fa<entry_declaration>s.>
 
 !corrigendum E.2.1(8)
 
@@ -100,7 +91,8 @@
 
 !ACATS test
 
-An ACATS B-Test should be created to check that the new rule is actually enforced.
+An ACATS B-Test should be created to check that the new rule is actually
+enforced.
 
 !ASIS
 

Questions? Ask the ACAA Technical Agent