CVS difference for ais/ai-00064.txt

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

--- ais/ai-00064.txt	1998/09/30 00:17:12	1.1
+++ ais/ai-00064.txt	1999/06/26 01:11:13	1.2
@@ -1,5 +1,6 @@
-!standard 03.11    (09)                               97-04-11  AI95-00064/06
+!standard 03.11    (09)                               99-06-25  AI95-00064/07
 !class binding interpretation 95-07-06
+!status Corrigendum 2000 99-05-24
 !status WG9 approved (8-0-0) 97-07-04
 !status ARG approved (9-0-0) 97-04-11
 !status work item (letter ballot was 10-1-1) 96-10-03
@@ -12,7 +13,7 @@
 !difficulty Hard
 !subject Elaboration checks for renamings-as-body
 
-!summary 96-11-16
+!summary
 
 An elaboration check is performed for a call to a subprogram whose body
 is given as a renaming-as-body.  This check fails if the renaming-as-body
@@ -20,7 +21,7 @@
 performed for the renamed subprogram, and fails if *its* body has not yet
 been elaborated.)
 
-!question 96-11-16
+!question
 
 3.11(10) indicates that an elaboration check is required only when a
 subprogram has an explicit body that is a subprogram_body.  However,
@@ -50,11 +51,11 @@
 and perhaps renaming-as-body.  However, only the syntactic entity BODY is
 defined (in 3.11).  Where is the unbolded term "body" defined?
 
-!recommendation 96-11-16
+!recommendation
 
 (See summary.)
 
-!wording 96-11-16
+!wording
 
 Define the term "body" to include the syntactic category body, plus
 entry_body, plus renaming-as-body, in 3.11.1(1).
@@ -69,7 +70,7 @@
     equivalent to the execution of a subprogram_body that simply calls
     the renamed subprogram with the same parameters.
 
-!discussion 96-05-08
+!discussion
 
 Since the elaboration of a renaming-as-body may evaluate expressions, it
 is clearly necessary that this elaboration be performed before calling
@@ -90,8 +91,55 @@
 
 See AI95-00135 for a discussion of circularities involving
 renamings-as-body.
+
+!corrigendum 3.11.01(1)
+
+@drepl
+Declarations sometimes come in two parts. A declaration that requires a
+second part is said to @i<require completion>. The second part is called the
+@i<completion> of the declaration (and of the entity declared), and is
+either another declaration, a body, or a pragma.
+@dby
+Declarations sometimes come in two parts. A declaration that requires a
+second part is said to @i<require completion>. The second part is called the
+@i<completion> of the declaration (and of the entity declared), and is
+either another declaration, a body, or a pragma. A @i<body> is a @fa<body>,
+@fa<entry_body>, or a renaming-as-body (see 8.5.4).
+
+!corrigendum 3.11(10)
+
+@drepl
+@xindent<For a call to a (non-protected) subprogram that has an explicit
+body, a check is made that the @fa<subprogram_body> is already
+elaborated. This check and the evaluations of any actual
+parameters of the call are done in an arbitrary order.>
+@dby
+@xindent<For a call to a (non-protected) subprogram that has an explicit
+body, a check is made that the body is already elaborated. This check and
+the evaluations of any actual parameters of the call are done in an
+arbitrary order.>
+
+!corrigendum 8.05.04(8)
+
+@dinsb
+For a call on a renaming of a dispatching subprogram that is overridden,
+if the overriding occurred before the renaming, then the body executed is
+that of the overriding declaration, even if the overriding declaration is not
+visible at the place of the renaming; otherwise, the inherited or predefined
+subprogram is called.
+@dinst
+For a call to a subprogram whose body is given as a renaming-as-body, the
+execution of the renaming-as-body is equivalent to the execution of a
+subprogram_body that simply calls the renamed subprogram with the same
+parameters.
+
+!ACATS test
+
+A test is needed. A C-Test should be built that checks cases similiar to the
+example in the question. The cases should include access to subprograms, and
+unelaborated regular subprograms, and verify that Program_Error is raised.
 
-!appendix 96-06-06
+!appendix
 
 !section 3.11(9)
 !section 8.5.4(1)
@@ -188,10 +236,10 @@
 > body of the renamed subprogram has been elaborated.  (In addition, the
 > AI should make it obvious that this check is performed at the time of a
 > call.)
-> 
+>
 > I suggest that the !recommendation be rewritten in
 > language that parallels 3.11(10) and 3.11(14):
-> 
+>
 >    For a call to a (non-protected) subprogram that has a
 >    renaming-as-body, a check is made that the renaming declaration has
 >    already been elaborated, and that the body of the subprogram named in
@@ -199,7 +247,7 @@
 >    the evaluations of any actual parameters of the call are done in an
 >    arbitrary order.  The exception Program_Error is raised if this check
 >    fails.
-> 
+>
 > (Perhaps just the first sentence will suffice as the !summary.)
 
 I agree with Norm's complaint.  However, I think the above wording fails

Questions? Ask the ACAA Technical Agent