[Ada] Fix anonymous-to-named access type implicit conversion legality checking
authorSteve Baird <baird@adacore.com>
Fri, 27 Mar 2020 18:56:40 +0000 (11:56 -0700)
committerPierre-Marie de Rodat <derodat@adacore.com>
Fri, 12 Jun 2020 08:29:33 +0000 (04:29 -0400)
commita6db99a61a86814241b66a17a65633338d86cc17
tree2e600748283905f7142edace79244d1769f067a8
parenta3483a77e5dd55112bd97543c8dd00275c16b345
[Ada] Fix anonymous-to-named access type implicit conversion legality checking

2020-06-12  Steve Baird  <baird@adacore.com>

gcc/ada/

* sem_res.adb (Valid_Conversion): The simpler cases of
violations of the aforementioned 8.6 rule are already handled
correctly. These include cases where the operand of the type
conversion is an access parameter or a stand-alone object of an
anonymous access type. Add code to detect violations where the
operand of the type conversion is an access discriminant whose
accessibility level is tied to one of the other simpler cases.
This is implemented in a new function,
Valid_Conversion.Is_Discrim_Of_Bad_Access_Conversion_Argument,
which is called in place of the previous test.
gcc/ada/sem_res.adb