CVS difference for ais/ai-00114.txt

Differences between 1.5 and version 1.6
Log of other versions for file ais/ai-00114.txt

--- ais/ai-00114.txt	2002/01/24 04:54:11	1.5
+++ ais/ai-00114.txt	2003/01/24 04:14:27	1.6
@@ -235,6 +235,74 @@
+!topic Object freezing and aspect clauses
+!reference RM95 13.14(19), 13.1
+!from Adam Beneschan 11-18-02
+I believe there's an omission from RM95 13.1 on the subject of an
+aspect clause on an object after the object is frozen.  It seems clear
+to me that this was intended to be illegal.  13.14(19) says:
+   An operational or representation item that directly specifies an
+   aspect of an entity shall appear before the entity is frozen (see
+   13.1)
+where "entity" includes objects as well as types.  ACATS test bde0008
+confirms that this is supposed to be illegal:
+   type Enum is (Red, White, Yellow);
+   ObjA : Enum;
+   ObjB : Enum := ObjA;
+   -- The nonstatic expression ObjA in the initialization expression of ObjB
+   -- above freezes ObjA.  The representation clause is therefore illegal.
+   -- RM 13.14(4,8,19);6.0
+   for ObjA'Size use System.Storage_Unit;                             -- ERROR:
+                                   -- Representation clause of a frozen object.
+The reason I think there's an omission is that the Legality Rules in
+13.14(16-19) are all supposed to be repeats of rules that are stated
+elsewhere in the RM, and they all refer to other sections.  The above
+rule refers to 13.1.  However, there appears to be no language in 13.1
+that makes it illegal for an aspect clause on an *object* to appear
+after the object is frozen.  13.1(9) and 13.1(9.1) make it illegal for
+types and subtypes, but there's no similar language in 13.1 that
+pertains to objects.
+This appears to me to be a simple typo, but it should be fixed.
+From: Randy Brukardt
+Sent: Friday, November 22, 2002  11:16 PM
+The above comment has raised during the Corrigendum process, and was handled
+at that time. Note that the comment is only on the AARM, as there is no
+such thing as the RM rule "that is intended to be a repeat". If it's a
+normative rule (and this one is), it applies.
+We discussed this during the Corrigendum discussions. See the !appendix of
+AI-137 (toward the bottom).
+But the whole question is a bit silly. I don't see anything in 13.14(16-19)
+that indicates that it is some sort of repeat. Certainly, it is normative
+text in the standard. It's true that the Ada 95 AARM has the text in square
+brackets, but the AARM isn't normative in any way.
+There were several such AARM errors discovered before or during the
+Corrigendum work. The updated AARM that includes the Corrigendum changes
+does not include square brackets around 13.14(19) for this very reason: it
+is not redundant. (There are a couple of other, similar cases in the updated
+In any case, this appears to be a comment on the AARM, not on the
+standard -- and the AARM change has already been made. So there is nothing
+that needs to be done here.
 From: Randy Brukardt (Editor)
 Date: August 30, 2000

Questions? Ask the ACAA Technical Agent