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

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

--- ai05s/ai05-0066-1.txt	2008/02/05 05:36:13	1.2
+++ ai05s/ai05-0066-1.txt	2008/02/23 05:05:41	1.3
@@ -1,4 +1,4 @@
-!standard 3.10.2(14.4/2)                                      08-02-03    AI05-0066-1/02
+!standard 3.10.2(14.4/2)                                      08-02-09    AI05-0066-1/03
 !standard 7.6.1(13/2)
 !standard 7.6.1(13.1/2)
 !class binding interpretation 07-10-22
@@ -11,7 +11,13 @@
 
 !summary
 
-** TBD **
+When an aggregate or function call is used to initialize an
+object, and an anonymous object is used to temporarily hold
+the result, we define the master of the anonymous object to
+be the expression itself, so that it gets finalized.  However,
+we transfer the coextensions, if any, to the object being initialized
+as part of the assignment, prior to finalizing the anonymous
+object.
 
 !question
 
@@ -66,28 +72,37 @@
 
 !wording
 
-Modify 3.10.2(14.4/2) as follows (this includes the wording change of AI05-0024-1):
+    In the first case, the allocated object is said to be a coextension
+    of the object whose discriminant designates it, as well as of any
+    object of which the discriminated object is itself a coextension or
+    subcomponent. {If the allocated object is a coextension of an
+    anonymous object representing the result of an aggregate or function
+    call that is used (in its entirety) to directly initialize a part of
+    an object, after the result is assigned, the coextension becomes a
+    coextension of the object being initialized and is no longer
+    considered a coextension of the anonymous object.}  All coextensions
+    of an object {(which have not thus been transfered by such an
+    initialization)} are finalized when the object is finalized (see
+    7.6.1).
 
-    In the first case, the allocated object is said to be a
-    coextension of the object whose discriminant designates it, as well
-    as of any object of which the discriminated object is itself a
-    coextension or subcomponent. All coextensions of an object are
-    finalized when the object is finalized (see 7.6.1){, except in the
-    case of an aggregate or function call that is used (in its entirety)
-    to directly initialize a part of an object}. {In this case, the
+Add the following note after 7.6.1(9.1):
+    
+  AARM NOTE: In the case of an aggregate or function call that is used 
+    (in its entirety) to directly initialize a part of an object, the
     coextensions of the result of evaluating the aggregate or function
-    call become coextensions of the object being initialized and are not
-    finalized until the object being initialized is ultimately finalized.}
+    call are transfered to become coextensions of the object being
+    initialized and are not finalized until the object being initialized
+    is ultimately finalized.
 
 Modify 7.6.1(13) as follows:    
     
     The master of an object is the master enclosing its creation whose
-    accessibility level (see 3.10.2) is equal to that of the object,
+    accessibility level (see 3.10.2) is equal to that of the object{,
     except in the case of an anonymous object representing the result of
     an aggregate or function call. The master of such an anonymous
     object is the innermost master enclosing the evaluation of the
     aggregate or function call, which may be the aggregate or function
-    call itself.   
+    call itself.}   
     
  AARM NOTE: 
     In 3.10.2 we assign an accessibility level to the result of an
@@ -112,7 +127,6 @@
     evaluation of the expression {and use of the objects, prior to starting
     the execution of any subsequent construct}.
 
-
 !discussion
 
 The definition of accessibility level for function results and
@@ -199,7 +213,7 @@
    after the finalization].
 
 (The part in square brackets is repeated from 7.6(11/2), and thus follows; we would need
-to explicit say something else if we don't want that.)
+to explicitly say something else if we don't want that.)
 
 --!corrigendum 7.6.1(13)
 

Questions? Ask the ACAA Technical Agent