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

Differences between 1.3 and version 1.4
Log of other versions for file ai05s/ai05-0157-1.txt

--- ai05s/ai05-0157-1.txt	2009/07/11 03:06:22	1.3
+++ ai05s/ai05-0157-1.txt	2009/12/10 07:23:13	1.4
@@ -1,6 +1,7 @@
-!standard 13.11.2(3)                                   09-06-27  AI05-0157-1/01
+!standard 13.11.2(4)                                   09-12-09  AI05-0157-1/02
 !standard 13.11.2(17)
 !class binding interpretation 09-06-02
+!status ARG Approved 10-0-1  09-11-08
 !status work item 09-06-02
 !status received 09-02-15
 !priority Low
@@ -12,8 +13,8 @@
 Calling an instance of Unchecked_Deallocation is illegal if pool is
 known to have Storage_Size equal to zero.
 
-We recommend that an instance of Unchecked_Deallocation raise Program_Error
-if the pool has Storage_Size equal to zero (if it is not illegal).
+An instance of Unchecked_Deallocation raises Program_Error if the pool
+has Storage_Size equal to zero (if it is not illegal).
 
 !question
 
@@ -35,7 +36,7 @@
 
 !wording
 
-Add after 13.11.2(3):
+Add before 13.11.2(4):
 
 Legality Rules
 
@@ -59,7 +60,7 @@
 zero. 
 
 AARM Note: If the call is not illegal (as in a generic body), we recommend that
-it raise Program_Error. Since the execution of this call erroneous (any allocator
+it raise Program_Error. Since the execution of this call is erroneous (any allocator
 from the pool will have raised Storage_Error, so the non-null access value must
 have been allocated from a different pool or be a stack-allocated object), we can't
 require any behavior - anything at all would be a legitimate implementation.
@@ -70,7 +71,7 @@
 Humm, reading the wording of 13.11.2(16), one could argue that calling an instance of
 Unchecked_Deallocation with a null access value is *always* erroneous. It's not clear
 what "the object" is in that case, but surely it wasn't created by an allocator with
-Name'Storage_Pool. (Of course, even Adam would be embarassed to actually claim this
+Name'Storage_Pool. (Of course, even Adam would be embarrassed to actually claim this
 seriously - no one could doubt the intent.) Do we need to clarify 13.11.2(16) in some
 way (perhaps an AARM To Be Honest note would be sufficient)?]
 
@@ -116,8 +117,32 @@
 for option (4) if the call is legal but the size is known to be zero.
 
 
---!corrigendum 13.11.2(3)
---!corrigendum 13.11.2(17)
+!corrigendum 13.11.2(4)
+
+@dinst
+Given an instance of Unchecked_Deallocation declared as follows:
+@dinsb
+@i<@s8<Legality Rules>>
+
+A call on an instance of Unchecked_Deallocation is illegal if the actual
+access type of the instance is a type for which the Storage_Size has been
+specified by a static expression with value zero or is defined by the language
+to be zero. In addition to the places where Legality Rules normally apply (see
+12.3), this rule applies also in the private part of an instance of a generic unit.
+This rule does not apply in the body of a generic unit or within a body declared
+within the declarative region of a generic unit, if the actual access type of
+the instance is a descendant of a formal access type declared within the formal
+part of the generic unit.
+
+!corrigendum 13.11.2(17)
+
+@dinst
+For a standard storage pool, Free should actually reclaim the storage.
+@dinsa
+A call on an instance of Unchecked_Deallocation with a non-null access value should
+raise Program_Error if the actual access type of the instance is a type for which
+the Storage_Size has been specified to be zero or is defined by the language to be
+zero. 
 
 
 !ACATS Test

Questions? Ask the ACAA Technical Agent