CVS difference for ais/ai-00216.txt

Differences between 1.18 and version 1.19
Log of other versions for file ais/ai-00216.txt

--- ais/ai-00216.txt	2005/01/07 03:07:26	1.18
+++ ais/ai-00216.txt	2005/01/28 02:10:36	1.19
@@ -1,4 +1,4 @@
-!standard B.03.03      (00)                         04-10-25  AI95-00216/14
+!standard B.03.03      (00)                         05-01-10  AI95-00216/15
 !standard B.03         (60.2)
 !class amendment 99-03-23
 !status Amendment 200Y 03-02-17
@@ -27,7 +27,7 @@
 
 !proposal
 
-    pragma Unchecked_Union(first_subtype_mark);
+    pragma Unchecked_Union (first_subtype_local_name);
 
 This representation pragma is intended for use with a type with a variant part
 (potentially with further nested variant parts), that is to be manipulated in C
@@ -183,12 +183,31 @@
 
 An unchecked union type is eligible for convention C.
 
-Discriminant_Check is suppressed for the type.
-
 All objects of the type have the same size.
 
 Discriminants of objects of the type are of size zero.
 
+Any check which would require reading a discriminant
+of an unchecked union object is suppressed (see 11.5).
+These checks include:
+
+ * The check performed when addressing a variant component (i.e.,
+   a component that was declared in a variant part) of an unchecked
+   union object that the object has this component (see 4.1.3).
+
+ * Any checks associated with a type or subtype conversion of a value
+   of an unchecked union type (see 4.6). This includes, for example,
+   the check associated with the implicit subtype conversion of an
+   assignment statement.
+
+ * The subtype membership check associated with the evaluation of
+   a qualified expression (see 4.7) or an uninitialized allocator
+   (see 4.8).
+
+AARM Note: If a suppressed check would have failed, execution is
+erroneous (see 11.5). An implementation is always allowed to make
+a suppressed check if it can somehow determine the discriminant value.
+
                 Dynamic Semantics
 
 A view of an unchecked union object [(including a type conversion or
@@ -382,11 +401,26 @@
 
 An unchecked union type is eligible for convention C.
 
-Discriminant_Check is suppressed for an unchecked union type.
-
 All objects of an unchecked union type have the same size.
 
 Discriminants of objects of an unchecked union type are of size zero.
+
+Any check which would require reading a discriminant
+of an unchecked union object is suppressed (see 11.5).
+These checks include:
+
+@xbullet<The check performed when addressing a variant component (i.e.,
+a component that was declared in a variant part) of an unchecked
+union object that the object has this component (see 4.1.3).>
+
+@xbullet<Any checks associated with a type or subtype conversion of a value
+of an unchecked union type (see 4.6). This includes, for example,
+the check associated with the implicit subtype conversion of an
+assignment statement.>
+
+@xbullet<The subtype membership check associated with the evaluation of
+a qualified expression (see 4.7) or an uninitialized allocator
+(see 4.8).>
 
 @i<@s8<Dynamic Semantics>>
 

Questions? Ask the ACAA Technical Agent