CVS difference for ais/ai-10260.txt

Differences between 1.10 and version 1.11
Log of other versions for file ais/ai-10260.txt

--- ais/ai-10260.txt	2005/06/16 23:47:47	1.10
+++ ais/ai-10260.txt	2005/08/21 06:00:42	1.11
@@ -1,4 +1,4 @@
-!standard  3.09  (06)                               05-02-25  AI95-00260-02/05
+!standard  3.09  (06)                               05-08-08  AI95-00260-02/06
 !standard  3.09  (07)
 !standard  3.09  (12)
 !standard  3.09  (18)
@@ -129,19 +129,21 @@
 Erroneous Execution
 
 If the internal tag provided to an instance of
-Tags.Generic_Dispatching_Constructor identifies a specific type whose tag has
+Tags.Generic_Dispatching_Constructor identifies a type that is not
+library-level and whose tag has
 not been created (see 13.14), or does not exist in the partition at the time of
 the call, execution is erroneous.
 
-AARM Note: For a library-level type, this shouldn't be possible presuming that
-the tag value came from the current execution of the partition. T'Tag freezes
-the type (and thus creates the tag), and Internal_Tag and Descendant_Tag
-cannot return the tag of a library-level type that has not been created.
-Finally, library-level types never cease to exist. Thus, if the tag comes from
-a library-level type, there cannot be erroneous execution (the use of
-Descendant_Tag rather than Internal_Tag can help insure that the tag is
-of a library-level type). This is also similar to the rules for T'Class'Input
-(see 13.13.2). [Note to readers, this also is found in AI-279.]
+AARM Note: We exclude tags of library-level types from the current
+execution of the partition, because misuse of such tags should always be
+detected.
+T'Tag freezes the type (and thus creates the tag), and Internal_Tag and
+Descendant_Tag cannot return the tag of a library-level type that has not been
+created. Finally, library-level types never cease to exist. Thus, if the tag
+comes from a library-level type, there cannot be erroneous execution (the use
+of Descendant_Tag rather than Internal_Tag can help insure that the tag is of a
+library-level type). This is also similar to the rules for T'Class'Input (see
+13.13.2). [Note to readers, this also is found in AI-279.]
 
 Add after 3.9(30):
 
@@ -185,13 +187,13 @@
 
 Add after 12.6(8):
 
-If a formal parameter of an formal_abstract_subprogram_declaration is of a
-specific tagged type T or of an anonymous access designating a specific tagged
-type T, T is called a controlling type of the
-formal_abstract_subprogram_declaration. Similarly, if the result of an
+If a formal parameter of a formal_abstract_subprogram_declaration is of a
+specific tagged type T or of an anonymous access type designating a specific
+tagged type T, T is called a controlling type of the
+formal_abstract_subprogram_declaration. Similarly, if the result of a
 formal_abstract_subprogram_declaration for a function is of a specific tagged
-type T or of an anonymous access designating a specific tagged type T, T is
-called a controlling type of the formal_abstract_subprogram_declaration. A
+type T or of an anonymous access type designating a specific tagged type T,
+T is called a controlling type of the formal_abstract_subprogram_declaration. A
 formal_abstract_subprogram_declaration shall have exactly one controlling type.
 
 AARM Notes:
@@ -772,13 +774,13 @@
 @dinsa
 The profiles of the formal and actual shall be mode-conformant.
 @dinss
-If a formal parameter of an @fa<formal_abstract_subprogram_declaration> is of a
-specific tagged type T or of an anonymous access designating a specific tagged
-type T, T is called a @i<controlling type> of the
-@fa<formal_abstract_subprogram_declaration>. Similarly, if the result of an
+If a formal parameter of a @fa<formal_abstract_subprogram_declaration> is of a
+specific tagged type @i<T> or of an anonymous access type designating a
+specific tagged type @i<T>, @i<T> is called a @i<controlling type> of the
+@fa<formal_abstract_subprogram_declaration>. Similarly, if the result of a
 @fa<formal_abstract_subprogram_declaration> for a function is of a specific
-tagged type T or of an anonymous access designating a specific tagged type T,
-T is called a controlling type of the
+tagged type @i<T> or of an anonymous access type designating a specific tagged
+type @i<T>, @i<T> is called a controlling type of the
 @fa<formal_abstract_subprogram_declaration>. A
 @fa<formal_abstract_subprogram_declaration> shall have exactly one controlling
 type.

Questions? Ask the ACAA Technical Agent