CVS difference for ais/ai-00230.txt
--- ais/ai-00230.txt 2006/01/10 22:17:39 1.29
+++ ais/ai-00230.txt 2006/02/21 04:21:35 1.30
@@ -1,4 +1,4 @@
-!standard 03.04.01(06) 05-11-30 AI95-00230/20
+!standard 03.04.01(06) 06-02-02 AI95-00230/21
!standard 03.02.01(07)
!standard 03.02.01(08)
!standard 03.04.01(03)
@@ -18,6 +18,7 @@
!standard 04.02(08)
!standard 04.05.02(07)
!standard 04.05.02(09)
+!standard 04.05.02(33)
!standard 04.06(13)
!standard 04.06(18)
!standard 04.06(49)
@@ -318,6 +319,10 @@
* When both are of access-to-subprogram types,
the designated profiles shall be subtype conformant.
+Delete 4.5.2(33). [This note is misleading to all but Ada lawyers. While a
+comparison is not supposed to raise an exception, evaluation of the operands
+can (if they are invalid, such as a Signalling NaN). There are so many
+exceptions that it really doesn't say anything of value to the average user.]
Change paragraph 4.6(13) as follows:
@@ -937,6 +942,15 @@
@xbullet<When both are of access-to-subprogram types,
the designated profiles shall be subtype conformant.>
+!corrigendum 4.5.2(33)
+
+@ddel
+@s9<13 No exception is ever raised by a membership test, by a predefined
+ordering operator, or by a predefined equality operator for an elementary type,
+but an exception can be raised by the evaluation of the operands. A predefined
+equality operator for a composite type can only raise an exception if the type
+has a tagged part whose primitive equals operator propagates an exception.>
+
!corrigendum 4.6(13)
@drepl
@@ -3229,6 +3243,32 @@
if it wants to). It would seem very odd to say something different here; this
case doesn't seem anywhere near as important as the Unchecked_Conversion one
that we were discussing in AI-426.
+
+**************************************************************
+
+From: Robert Dewar
+Sent: Tuesday, January 10, 2006 5:16 PM
+
+>But, normatively, the situation is the same. It would be easy to imagine an
+>implementation that raised Program_Error if it read an invalid holey
+>enumeration value, for instance. (Indeed, Janus/Ada would do just that, if
+>the optimizer is off; canonically, all holey enumeration values are loaded
+>into registers as position numbers (so as to be able to use them for
+>indexing and looping). The optimizer removes unneeded lookups, but if it is
+>off, the operation would occur and raise an exception.)
+
+Yes, it is easy to imagine such, which is why I said there would be some value
+in outlawing it (if you could not imagine anything that would be outlawed, then
+why discuss this at all?)
+
+>If we *really* wanted to say something about discrete and/or access type
+>comparisons, I think we'd need Implementation Advice. (I cannot see how we
+>could make this a requirement, given that it would be a "not withstanding"
+>rule. And there are a lot of cases identified where there is no problem.)
+>Which is a lot bigger deal than removing a confusing note, and probably too
+>late for the Amendment.
+
+I agree, just remove the note at this stage
*************************************************************
Questions? Ask the ACAA Technical Agent