CVS difference for ai12s/ai12-0003-1.txt

Differences between 1.11 and version 1.12
Log of other versions for file ai12s/ai12-0003-1.txt

--- ai12s/ai12-0003-1.txt	2015/01/27 03:16:48	1.11
+++ ai12s/ai12-0003-1.txt	2015/01/27 22:51:03	1.12
@@ -1,4 +1,4 @@
-!standard 8.2(11)                                   15-01-23    AI12-0003-1/06
+!standard 8.2(11)                                   15-01-27    AI12-0003-1/07
 !standard 13.11.3(3.1/3)
 !standard 13.11.3(4.1/3)
 !standard 13.11.3(4.2/3)
@@ -69,15 +69,20 @@
 <<< AI Note: the wording carefully ties into 13.11, so that it works for
 instances. >>>>
-   A direct_name shall not be a homograph of the package Standard that denotes a
-   declaration other than package Standard when declared within a compilation
-   unit for which the Standard default pool applies.
+   A direct_name shall not be a homograph of the name of package Standard if it
+   denotes a declaration other than package Standard that has use-visibility at
+   the place of a Default_Storage_Pool pragma that defines the default pool to
+   be Standard.
    AARM Reason: Any use of an identifier with the name Standard resprensenting
    anything other than the package Standard would be confusing in a compilation
    unit with Standard specified as the default storage pool. Such a choice for
    an identifier is not recommended and very unlikely to occur, so a simple rule
-   was chosen to prevent such confusion.
+   was chosen to prevent such confusion.  [Author's note: An attempt to fix the
+   wording in the very unlikely chance that we decide to keep this paragraph.
+   Otherwise, please delete the text marked by %%%]
+End %%%
 Add after 13.11.3(4.2/3):
@@ -134,6 +139,21 @@
 implementation to revert to the standard allocation method seemed best
 to achieve the desired capability.
+Some were concerned about confusion between the identifier-specific-to-a-pragma
+Standard and some entity named "Standard". However, such an entity can never be
+use-visible (as the language-defined Standard is always directly visible and not
+overloadable); therefore it would have to have immediate-visibility for there to
+be any confusion. While immediate-visibility can occur between parent and child
+packages, which is a case similar to use-visibility, it was felt that this
+possibility would be obvious enough and unlikely to occur, so we do not bother
+with any sort of check for this case. "Standard" is always interpreted as an
+identifier specific to the pragma when it occurs in a Default_Storage_Pool
+pragma or aspect. [Author' Note: This last paragraph marked with %%% should be
+deleted if we decide to keep the wording above about the legality check against
+names conflicting with "Standard"]
 !ACATS test
 An ACATS C-Test should be constructed to test this capability.
@@ -1802,5 +1822,22 @@
 I agree with this, and as a response I intend to experiment with making this
 GNAT warning the default, at least for Standard, and maybe for all the other
 entities, or at least have it included in -gnatwa.
+From: Brad Moore
+Sent: Tuesday, January 27, 2015  12:13 AM
+I have included an update. [This is version /07 of the AI.]
+It is unusual in that it is both written up with an attempted fix to the
+paragraph, for the remote chance that we decide to keep it, while also including
+some text in the discussion about why we decided to not keep it.
+I have also added some comments in square brackets at both of these places
+indicating that one or the other should be deleted.
+So hopefully it will just be a matter of deciding which section we want to

Questions? Ask the ACAA Technical Agent