CVS difference for ais/ai-00407.txt

Differences between 1.3 and version 1.4
Log of other versions for file ais/ai-00407.txt

--- ais/ai-00407.txt	2005/03/01 23:50:48	1.3
+++ ais/ai-00407.txt	2005/04/13 05:37:22	1.4
@@ -1,5 +1,11 @@
-!standard 4.1.3 (13)                                   05-02-12  AI95-00407/03
+!standard 4.1.3(09)                                   05-03-01  AI95-00407/04
+!standard 4.1.3(13)
+!standard 4.1.3(17)
+!standard 6.3.1(10)
+!standard 6.4(10)
 !class amendment 05-02-07
+!status Amendment 200Y 05-03-01
+!status ARG Approved 10-0-0  05-02-13
 !status work item 05-02-07
 !status received 05-02-07
 !priority High
@@ -38,28 +44,32 @@
 
 !wording
 
-Change the last sentence of 4.1.3(9.2/2) to read:
+Change the last sentence of second paragraph added by AI95-00252 after 4.1.3(9) to read:
 
 The selected_component denotes a view of this subprogram that omits the first
 formal parameter. This view is called a *prefixed view* of the subprogram, and
 the prefix of the selected_component (after any implicit dereference) is called
 the prefix of the prefixed view.
 
-Change 4.1.3(13.1/2) to read:
+Change the paragraph added by AI95-00252 after 4.1.3(13) to read:
 
 For a subprogram whose first parameter is an access parameter, the prefix of
-any  prefixed view shall denote an aliased view of an object.
+any prefixed view shall denote an aliased view of an object.
 
-Add after 4.1.3(13.1/2):
-
 For a subprogram whose first parameter is of mode *in out* or *out*, or of an
 anonymous access-to-variable type, the prefix of any prefixed view shall denote
 a variable.
+
+Remove the paragraph added by AI95-00252 after 4.1.3(15) (it has to do with
+calls, not names).
 
-Remove 4.1.3(15.1/2) (it has to do with calls, not names).
+Change the comment on the example in 4.1.3(17) to:
 
-Change 6.3.1(10.1/2):
+-- a prefixed view of a procedure   (see 6.4)
+-- assuming X has a tagged type
 
+Change the paragraph added by AI95-00252 after 6.3.1(10):
+
 any prefixed view of a subprogram (see 4.1.3).
 
 Add after 6.4(10):
@@ -81,8 +91,96 @@
 
 !example
 
+(See AI-252 for examples.)
+
+!corrigendum 4.1.3(09)
+
+@dinsa
+@xbullet<The @fa<prefix> shall resolve to denote an object or value of some
+task or protected type (after any implicit dereference). The @fa<selector_name>
+shall resolve to denote an @fa<entry_declaration> or
+@fa<subprogram_declaration> occurring (implicitly or explicitly) within the
+visible part of that type. The @fa<selected_component> denotes the
+corresponding entry, entry family, or protected subprogram.>
+@dinst
+@xbullet<A view of a subprogram whose first formal parameter is of a tagged
+type or is an access parameter whose designated type is tagged:
+
+The @fa<prefix> (after any implicit dereference) shall resolve to denote an
+object or value of a specific tagged type @i<T> or class-wide type @i<T>'Class.
+The @fa<selector_name> shall resolve to denote a view of a subprogram declared
+immediately within the declarative region in which an ancestor of the type
+@i<T> is declared. The first formal parameter of the subprogram shall be of
+type @i<T>, or a class-wide type that covers @i<T>, or an access parameter
+designating one of these types. The designator of the subprogram shall not be
+the same as that of a component of the tagged type visible at the point of the
+@fa<selected_component>. The @fa<selected_component> denotes a view of this
+subprogram that omits the first formal parameter. This view is called a
+@i<prefixed view> of the subprogram, and the @fa<prefix> of the
+@fa<selected_component> (after any implicit dereference) is called the
+@i<prefix> of the prefixed view.>
+
+!corrigendum 4.1.3(13)
+
+@dinsa
+If the @fa<prefix> does not denote a package, then it shall be a
+@fa<direct_name> or an expanded name, and it shall resolve to denote a program
+unit (other than a package), the current instance of a type, a
+@fa<block_statement>, a @fa<loop_statement>, or an @fa<accept_statement> (in
+the case of an @fa<accept_statement> or @fa<entry_body>, no family index is
+allowed); the expanded name shall occur within the declarative region of this
+construct. Further, if this construct is a callable construct and the
+@fa<prefix> denotes more than one such enclosing callable construct, then the
+expanded name is ambiguous, independently of the @fa<selector_name>.
+@dinst
+@i<@s8<Legality Rules>>
+
+For a subprogram whose first parameter is an access parameter, the prefix of
+any prefixed view shall denote an aliased view of an object.
+
+For a subprogram whose first parameter is of mode @b<in out> or @b<out>, or of
+an anonymous access-to-variable type, the prefix of any prefixed view shall
+denote a variable.
+
+!comment corrigendum 4.1.3(15) - the changes in AI-00252 need to be removed.
+!comment Handle that in AI-252.
+
+!corrigendum 4.1.3(17)
+
+@dprepl
+@xcode<Control.Seize     -- @ft<@i<an entry of a protected object    (see 9.4)>>>
+@dby
+@xcode<X.Activate        -- @ft<@i<a prefixed view of a procedure    (see 6.4)>>
+                  -- @ft<@i<assuming X has a tagged type>>
+Control.Seize     -- @ft<@i<an entry of a protected object    (see 9.4)>>>
+
+
+!corrigendum 6.3.1(10)
+
+@drepl
+@xbullet<a subprogram declared immediately within a @fa<protected_body>.>
+@dby
+@xbullet<a subprogram declared immediately within a @fa<protected_body>;>
+@xbullet<any prefixed view of a subprogram (see 4.1.3).>
+
+!corrigendum 6.4(10)
+
+@dinsa
+For the execution of a subprogram call, the @fa<name> or @fa<prefix> of the
+call is evaluated, and each @fa<parameter_association> is evaluated (see
+6.4.1). If a @fa<default_expression> is used, an implicit
+@fa<parameter_association> is assumed for this rule. These evaluations are done
+in an arbitrary order. The @fa<subprogram_body> is then executed. Finally, if
+the subprogram completes normally, then after it is left, any necessary
+assigning back of formal to actual parameters occurs (see 6.4.1).
+@dinst
+If the @fa<name> or @fa<prefix> of a subprogram call denotes a prefixed view
+(see 4.1.3), the subprogram call is equivalent to a call on the underlying
+subprogram, with the first actual parameter being provided by the the prefix of
+the prefixed view (or the Access attribute of this prefix if the first formal
+parameter is an access parameter), and the remaining actual parameters given by
+the @fa<actual_parameter_part>, if any.
 
---!corrigendum
 
 !ACATS test
 

Questions? Ask the ACAA Technical Agent