CVS difference for ais/ai-00400.txt
--- ais/ai-00400.txt 2005/03/04 06:12:03 1.2
+++ ais/ai-00400.txt 2005/04/13 05:37:21 1.3
@@ -1,4 +1,4 @@
-!standard 3.9(7) 05-03-03 AI95-00400/02
+!standard 3.9(7) 05-03-04 AI95-00400/03
!standard 3.9(10)
!standard 11.4.1(2)
!standard 11.4.1(5)
@@ -76,10 +76,10 @@
Change 11.4.1(12) to read:
The functions Wide_Wide_Exception_Name return the full expanded name of the
-exception, in upper case, starting with a root library unit. The returned string
-has lower bound 1. For an exception declared immediately within package
-Standard, the defining_identifier is returned. The result is implementation
-defined if the exception is declared within an unnamed block_statement.
+exception, in upper case, starting with a root library unit. For an exception
+declared immediately within package Standard, the defining_identifier is
+returned. The result is implementation defined if the exception is declared
+within an unnamed block_statement.
The functions Exception_Name (respectively, Wide_Exception_Name) return the same
sequence of graphic characters as that defined for Wide_Wide_Exception_Name, if
@@ -88,6 +88,22 @@
defined, but no shorter than that returned by Wide_Wide_Exception_Name for the
same value of the argument.
+Change C.5(7) to read:
+
+If the pragma applies to an enumeration type, then the semantics of the
+Wide_Image and Wide_Value attributes are implementation defined for that type;
+the semantics of Image and Value are still defined in terms of Wide_Image and
+Wide_Value. In addition, the semantics of Text_IO.Enumeration_IO are
+implementation defined. If the pragma applies to a tagged type, then the
+semantics of the Tags.Wide_Wide_Expanded_Name function are implementation
+defined for that type; the semantics of Tags.Expanded_Name and
+Tags.Wide_Expanded_Name are still defined in terms of
+Tags.Wide_Wide_Expanded_Name. If the pragma applies to an exception, then the
+semantics of the Exceptions.Wide_Wide_Exception_Name function are
+implementation defined for that exception; the semantics of
+Exceptions.Exception_Name and Exceptions.Wide_Exception_Name are still defined
+in terms of Tags.Wide_Wide_Expanded_Name.
+
!discussion
The following approaches were considered:
@@ -118,8 +134,125 @@
!example
+
+!corrigendum 3.9(7)
+
+@drepl
+@xcode< @b<function> Expanded_Name(T : Tag) @b<return> String;
+ @b<function> External_Tag(T : Tag) @b<return> String;
+ @b<function> Internal_Tag(External : String) @b<return> Tag;>
+@dby
+@xcode< @b<function> Expanded_Name(T : Tag) @b<return> String;
+ @b<function> Wide_Expanded_Name(T : Tag) @b<return> Wide_String;
+ @b<function> Wide_Wide_Expanded_Name(T : Tag) @b<return> Wide_Wide_String;
+ @b<function> External_Tag(T : Tag) @b<return> String;
+ @b<function> Internal_Tag(External : String) @b<return> Tag;>
+
+!corrigendum 3.9(10)
+
+@drepl
+The function Expanded_Name returns the full expanded name of the first subtype
+of the specific type identified by the tag, in upper case, starting with a root
+library unit. The result is implementation defined if the type is declared
+within an unnamed @fa<block_statement>.
+@dby
+The function Wide_Wide_Expanded_Name returns the full expanded name of the
+first subtype of the specific type identified by the tag, in upper case,
+starting with a root library unit. The result is implementation defined if the
+type is declared within an unnamed @fa<block_statement>.
---!corrigendum
+The function Expanded_Name (respectively, Wide_Expanded_Name) returns the same
+sequence of graphic characters as that defined for Wide_Wide_Expanded_Name, if
+all the graphic characters are defined in Character (respectively,
+Wide_Character); otherwise, the sequence of characters is implementation
+defined, but no shorter than that returned by Wide_Wide_Expanded_Name for the
+same value of the argument.
+
+!corrigendum 11.4.1(2)
+
+@drepl
+@xcode<@b<package> Ada.Exceptions @b<is>
+ @b<type> Exception_Id @b<is private>;
+ Null_Id : @b<constant> Exception_Id;
+ @b<function> Exception_Name(Id : Exception_Id) @b<return> String;>
+@dby
+@xcode<@b<package> Ada.Exceptions @b<is>
+ @b<type> Exception_Id @b<is private>;
+ Null_Id : @b<constant> Exception_Id;
+ @b<function> Exception_Name(Id : Exception_Id) @b<return> String;
+ @b<function> Wide_Exception_Name(Id : Exception_Id) @b<return> Wide_String;
+ @b<function> Wide_Wide_Exception_Name(Id : Exception_Id)
+ @b<return> Wide_Wide_String;>
+
+!corrigendum 11.4.1(5)
+
+@drepl
+@xcode< @b<function> Exception_Identity(X : Exception_Occurrence)
+ @b<return> Exception_Id;
+ @b<function> Exception_Name(X : Exception_Occurrence) @b<return> String;
+ -- @ft<@i<Same as Exception_Name(Exception_Identity(X))>>.
+ @b<function> Exception_Information(X : Exception_Occurrence) @b<return> String;>
+@dby
+@xcode< @b<function> Exception_Identity(X : Exception_Occurrence)
+ @b<return> Exception_Id;
+ @b<function> Exception_Name(X : Exception_Occurrence) @b<return> String;
+ -- @ft<@i<Same as Exception_Name(Exception_Identity(X))>>.
+ @b<function> Wide_Exception_Name(X : Exception_Occurrence)
+ @b<return> Wide_String;
+ -- @ft<@i<Same as Wide_Exception_Name(Exception_Identity(X))>>.
+ @b<function> Wide_Wide_Exception_Name(X : Exception_Occurrence)
+ @b<return> Wide_Wide_String;
+ -- @ft<@i<Same as Wide_Wide_Exception_Name(Exception_Identity(X))>>.
+ @b<function> Exception_Information(X : Exception_Occurrence) @b<return> String;>
+
+!corrigendum 11.4.1(12)
+
+@drepl
+The Exception_Name functions return the full expanded name of the exception, in
+upper case, starting with a root library unit. For an exception declared
+immediately within package Standard, the @fa<defining_identifier> is returned.
+The result is implementation defined if the exception is declared within an
+unnamed @fa<block_statement>.
+@dby
+The functions Wide_Wide_Exception_Name return the full expanded name of the
+exception, in upper case, starting with a root library unit. For an exception
+declared immediately within package Standard, the defining_identifier is
+returned. The result is implementation defined if the exception is declared
+within an unnamed @fa<block_statement>.
+
+The functions Exception_Name (respectively, Wide_Exception_Name) return the
+same sequence of graphic characters as that defined for
+Wide_Wide_Exception_Name, if all the graphic characters are defined in
+Character (respectively, Wide_Character); otherwise, the sequence of characters
+is implementation defined, but no shorter than that returned by
+Wide_Wide_Exception_Name for the same value of the argument.
+
+!corrigendum C.5(7)
+
+@drepl
+If the pragma applies to an enumeration type, then the semantics of the
+Wide_Image and Wide_Value attributes are implementation defined for that type;
+the semantics of Image and Value are still defined in terms of Wide_Image and
+Wide_Value. In addition, the semantics of Text_IO.Enumeration_IO are
+implementation defined. If the pragma applies to a tagged type, then the
+semantics of the Tags.Expanded_Name function are implementation defined for
+that type. If the pragma applies to an exception, then the semantics of the
+Exceptions.Exception_Name function are implementation defined for that
+exception.
+@dby
+If the pragma applies to an enumeration type, then the semantics of the
+Wide_Image and Wide_Value attributes are implementation defined for that type;
+the semantics of Image and Value are still defined in terms of Wide_Image and
+Wide_Value. In addition, the semantics of Text_IO.Enumeration_IO are
+implementation defined. If the pragma applies to a tagged type, then the
+semantics of the Tags.Wide_Wide_Expanded_Name function are implementation
+defined for that type; the semantics of Tags.Expanded_Name and
+Tags.Wide_Expanded_Name are still defined in terms of
+Tags.Wide_Wide_Expanded_Name. If the pragma applies to an exception, then the
+semantics of the Exceptions.Wide_Wide_Exception_Name function are
+implementation defined for that exception; the semantics of
+Exceptions.Exception_Name and Exceptions.Wide_Exception_Name are still defined
+in terms of Tags.Wide_Wide_Expanded_Name.
!ACATS test
Questions? Ask the ACAA Technical Agent