CVS difference for ai12s/ai12-0377-1.txt
--- ai12s/ai12-0377-1.txt 2020/04/22 00:59:47 1.1
+++ ai12s/ai12-0377-1.txt 2020/04/22 02:51:36 1.2
@@ -170,7 +170,22 @@
of derivation works as expected, however, so we have a case where one cannot
write the same thing as the compiler does automatically.
-[** Put PTC and Irvine results here if I get any. **]
+Running the test program on a recent version of ObjectAda (thanks to PTC for
+providing these results): The discriminant and accessibility cases do not
+compile (ObjectAda rejects the conversions suggesting an Ada 2005
+implementation of those). ObjectAda fully supports the derived type cases,
+including using explicit conversions. The tagged type case causes no errors
+nor obvious overwriting of memory (but it is not clear what actually was
+written).
+
+Running the test program on a recent version of ApexAda (thanks to PTC for
+providing these results): The accessibility cases do not compile (ApexAda
+rejects the conversion with a static accessibility check). ObjectAda fully
+supports the derived type cases, including using explicit conversions. The
+discriminant case shows that ApexAda does not assume the constraints of an
+out parameter, so a check was made and Constraint_Error raised. The tagged
+type case causes no errors nor obvious overwriting of memory (but it is not
+clear what actually was written).
Running the test program on a recent version of Janus/Ada shows that it fully
supports the derived type cases; it assumes that out parameters do not enforce
@@ -186,7 +201,9 @@
only want to use such a rule in cases that are actually problems, in order
that derivation works as expected (as noted in the preliminary parts of
the test program), and so that explicit calls that are exactly like calls on
-inherited subprograms work the same way as the inherited call.
+inherited subprograms work the same way as the inherited call. Note that
+GNAT is the only compiler that passes null currently, other compilers
+implement the language as defined more closely.
Note that an out parameter can always be null, even if the parameter is
declared with a null exclusion. Null exclusions are not checked when the
@@ -500,6 +517,42 @@
On Line Number 194 In TESTAI74
Test finished
+
+****************************************************************
+
+From: Randy Brukardt
+Sent: Never [Done April 21, 2020]
+
+Here's the results of the above test program when run on ObjectAda 10.1
+(4/21/20) [thanks to PTC for these results]
+
+[Note: ObjectAda needed the first and third error cases commented out, as it
+rejected both of the conversions in those two cases.]
+
+Check some nasty cases related to AI12-0377-1
+-- Expected result, no conversion
+-- Expected result, explicit parent conversion
+-- Expected result, inherited routine
+?? Possible erroneous execution
+Test finished
+
+****************************************************************
+
+From: Randy Brukardt
+Sent: Never [Done April 21, 2020]
+
+Here's the results of the above test program when run on ApexAda 5.2
+(4/21/20) [thanks to PTC for these results]
+
+[Note: ApexAda needed the third error cases commented out, as it
+rejected the conversion with a static accessibility failure.]
+
+Check some nasty cases related to AI12-0377-1
+-- Expected result, no conversion
+-- Expected result, explicit parent conversion
+-- Expected result, inherited routine
+-- Discriminant check made anyway - CONSTRAINT_ERROR raised at 16#000000000040439B#, Exception Message:
+?? Possible erroneous execution
****************************************************************
Questions? Ask the ACAA Technical Agent