CVS difference for ai12s/ai12-0240-2.txt

Differences between 1.2 and version 1.3
Log of other versions for file ai12s/ai12-0240-2.txt

--- ai12s/ai12-0240-2.txt	2018/12/12 02:49:40	1.2
+++ ai12s/ai12-0240-2.txt	2018/12/14 08:31:30	1.3
@@ -94,9 +94,10 @@
 split into two categories: \managed kinds\ and \unmanaged kinds\. A managed 
 kind of access object is subject to a number of compile-time and runtime rules
 that prevent various kinds of errors, including dangling references and 
-storage leaks. In contrast, a unmanaged kind of object is only subject to the 
+storage leaks. Allocations and deallocations only are allowed for
+managed kinds. In contrast, a unmanaged kind of object is only subject to the 
 normal rules for access types; it is useful when separate reference 
-abstractions are needed.
+abstractions are needed. 
 
 For most purposes, objects allocated for a fenced access type can be considered 
 part of their ultimate owner object, rather than the pool from which they are 
@@ -141,6 +142,24 @@
 
    AARM Reason: The restriction to pool-specific types makes most conversions
    from other access types illegal, even if the designated types are the same.
+
+The global specification of each ultimate owner type shall cover the Allocate 
+and Deallocate operations of the type of the storage pool associated with the
+fenced access type.
+
+   AARM Reason: For clients, the allocation and deallocation of objects
+   of the fenced access type should look like part of the operations for
+   the ultimate owner type. Any global references caused by those operations
+   need to be reflected in the use of the type. Deallocation will 
+   automatically happen during the finalization of the type; allocation
+   most likely will occur during initialization of the object.
+
+[Author's note: Is this enough? A deallocation can appear almost anywhere,
+as they're automatically called by assignment and finalization. OTOH, the
+6.1.2 rule is very vague and can be construed to cover virtually anything.
+(There is an implicit call to Allocate and Deallocate in any explicitly
+written subprograms.) These obscure cases will almost certainly have to be 
+tested by ACATS tests lest implementers be unaware of them.]
 
 No type shall be derived from a fenced access type.
 A fenced access type shall only match a formal access type which is itself

Questions? Ask the ACAA Technical Agent