CVS difference for ais/ai-00182.txt

Differences between 1.1 and version 1.2
Log of other versions for file ais/ai-00182.txt

--- ais/ai-00182.txt	1998/09/30 00:17:33	1.1
+++ ais/ai-00182.txt	1999/07/29 00:51:02	1.2
@@ -1,5 +1,6 @@
-!standard 07.06    (11)                               97-11-14  AI95-00182/03
+!standard 07.06    (11)                               99-07-28  AI95-00182/04
 !class binding interpretation 97-03-19
+!status Corrigendum 2000 99-07-28
 !status WG9 Approved  97-11-14
 !status ARG Approved (subject to editorial review) 10-0-0  97-04-11
 !status work item 97-03-19
@@ -8,7 +9,7 @@
 !difficulty Easy
 !subject Extension aggregates with controlled subcomponents
 
-!summary 97-05-08
+!summary
 
 For an extension_aggregate whose ancestor_part is a subtype_mark, for
 each controlled subcomponent of the ancestor part, either Initialize is
@@ -17,7 +18,7 @@
 7.6.1(13) is modified so that an anonymous object is not finalized until
 after it is no longer accessible via any name.
 
-!question 97-05-08
+!question
 
 Question 1:
 
@@ -43,15 +44,15 @@
 a generic formal in out parameter, or when a component of the object
 returned by the function call is renamed.
 
-!recommendation 97-05-08
+!recommendation
 
-(See Summary.)
+(See summary.)
 
-!wording 97-03-19
+!wording
 
-(See Summary.)
+(See summary.)
 
-!discussion 97-05-08
+!discussion
 
 Question 1:
 
@@ -62,8 +63,47 @@
 
 The intent is that such renamed objects should not be finalized until
 they are no longer "in use".
+
+!corrigendum 7.06(11)
+
+@drepl
+For an @fa<extension_aggregate> whose @fa<ancestor_part> is a @fa<subtype_mark>,
+Initialize is called on all controlled subcomponents of the ancestor part; if
+the type of the ancestor part is itself controlled, the Initialize procedure
+of the ancestor type is called, unless that Initialize procedure is abstract.
+@dby
+For an @fa<extension_aggregate> whose @fa<ancestor_part> is a @fa<subtype_mark>,
+for each controlled subcomponent of the ancestor part, either Initialize
+is called, or the default initial value is assigned, as appropriate; if the
+type of the ancestor part is itself controlled, the Initialize procedure of
+the ancestor type is called, unless that Initialize procedure is abstract.
+
+!corrigendum 7.06.01(13)
+
+@drepl
+The anonymous objects created by function calls and by @fa<aggregates> are
+finalized no later than the end of the innermost enclosing @fa<declarative_item>
+or @fa<statement>; if that is a @fa<compound_statement>, they are finalized
+before starting the execution of any statement within the
+@fa<compound_statement>.
+@dby
+If the @fa<object_name> in an @fa<object_renaming_declaration>, or the actual
+parameter for a generic formal @b<in out> parameter in a
+@fa<generic_instantiation>, denotes an anonymous object created by a function
+call, or a subcomponent of it, the anonymous object is not finalized until after
+it is no longer accessible via any name. Otherwise, the anonymous objects
+created by function calls and by @fa<aggregates> are finalized no later than the end
+of the innermost enclosing @fa<declarative_item> or @fa<statement>; if that is
+a @fa<compound_statement>, they are finalized before starting the execution of
+any statement within the @fa<compound_statement>.
+
+!ACATS test
+
+Create a C-Test that checks check that the obvious semantics are followed
+(i.e. no Initialize call for default initialized components). It should also
+check that renamed function results are not finalized too soon.
 
-!appendix 97-03-19
+!appendix
 
 !section 7.6(11)
 !subject Extension aggregates with controlled subcomponents
@@ -97,7 +137,6 @@
 value X.  That would be consistent with the treatment of objects created by
 object_declarations, as specified in RM95 7.6(10).
 
-
 ****************************************************************
 
 !section 7.6.1(13)
@@ -119,6 +158,5 @@
 and similarly when the function call is used as an actual parameter for a
 generic formal in out parameter, or when a component of the object returned by
 the function call is renamed.
-
 
 ****************************************************************

Questions? Ask the ACAA Technical Agent