CVS difference for ais/ai-00230.txt

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