CVS difference for ai05s/ai05-0288-1.txt
--- ai05s/ai05-0288-1.txt 2012/02/19 04:54:05 1.2
+++ ai05s/ai05-0288-1.txt 2012/03/10 06:42:31 1.3
@@ -1,6 +1,7 @@
-!standard 12.5.4(5) 12-02-13 AI05-0288-1/01
+!standard 12.5.4(5) 12-03-09 AI05-0288-1/02
!class binding interpretation 12-02-13
!status Amendment 2012 12-02-13
+!status ARG Approved 10-0-0 12-02-24
!status work item 12-02-13
!status received 11-12-19
!priority Low
@@ -28,7 +29,7 @@
package body Pack0 is
procedure Proc (N : Natural) is
begin
- Text_IO.Put_Line (Natural (N));
+ Text_IO.Put_Line (Natural'Image (N));
end Proc;
end Pack0;
@@ -69,15 +70,15 @@
end Pack2;
If Pack0.Proc'access were used with an expected type Actual_Acc, it
-would be illegal by 3.10.2(32). But since only mode conformance, not
+would be illegal by 3.10.2(32). But since only mode conformance, not
subtype conformance, is required when matching generic formal
access-to-subprogram types, this appears to be a way to get around
this restriction and pass a value that doesn't belong to the actual
-subprogram parameter's subtype. As a result, there is no any language
+subprogram parameter's subtype. As a result, there is no language
rule that would make the program illegal, nor is there any point at
which a Constraint_Error should be raised on the parameter -1.
-Is a fix is needed? (Yes.)
+Is a fix needed? (Yes.)
!recommendation
@@ -109,6 +110,9 @@
This clearly would be less incompatible (only making unlikely cases illegal),
but the rules needed are more complex (and needed in two places), so we adopt
the simpler rule.
+
+GNAT does not accept this example, so the compatibility issue is even less likely
+in practice. (AdaMagic-derived compilers do accept this example.)
!corrigendum 12.5.4(5)
Questions? Ask the ACAA Technical Agent