CVS difference for ais/ai-00400.txt

Differences between 1.2 and version 1.3
Log of other versions for file 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