Version 1.2 of ais/ai-00417.txt

Unformatted version of ais/ai-00417.txt version 1.2
Other versions for file ais/ai-00417.txt

!standard 3.9(12)          05-03-09 AI95-00417-01/01
!standard 11.4.1(12)
!class amendment 05-03-09
!status Amendment 200Y 05-03-03
!comment This AI is in the Amendment, but is not yet approved.
!status work item 05-03-09
!status received 05-03-09
!priority High
!difficulty Easy
!subject Lower bound of functions in Ada.Tags and Ada.Exceptions
!summary
(See Proposal.)
!problem
AI95-00378 specified that the lower bound of the string returned by the functions in Ada.Exceptions is 1, but nothing was done for the functions in Ada.Tags.
AI95-00400 added new functions in these packages but didn't specify the lower bound of the string that they return.
!proposal
Specify that the lower bound of the result of all these functions is 1.
!wording
Add after 3.9(11) (assuming AI-400):
The string returned by the functions Expanded_Name, Wide_Expanded_Name, Wide_Wide_Expanded_Name, and External_Tag has lower bound 1.
Change 11.4.1(12) (as modified by AI-400) 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. 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 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.
The string returned by the functions Exception_Name, Wide_Exception_Name, and Wide_Wide_Exception_Name has lower bound 1.
!discussion
(See proposal.)
!example
!corrigendum 3.9(11)
Insert after the paragraph:
The function External_Tag returns a string to be used in an external representation for the given tag. The call External_Tag(S'Tag) is equivalent to the attribute_reference S'External_Tag (see 13.3).
the new paragraph:
The string returned by the functions Expanded_Name, Wide_Expanded_Name, Wide_Wide_Expanded_Name, and External_Tag has lower bound 1.
!corrigendum 11.4.1(12)
Replace the paragraph:
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 defining_identifier is returned. The result is implementation defined if the exception is declared within an unnamed block_statement.
by:
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 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.
The string returned by the functions Exception_Name, Wide_Exception_Name, and Wide_Wide_Exception_Name has lower bound 1.
!ACATS test
Test cases should be added to the ACATS tests created for AI-400.
!appendix

****************************************************************

Questions? Ask the ACAA Technical Agent