[Ada] Plug loophole in Possible_Type_For_Conditional_Expression
authorEric Botcazou <ebotcazou@adacore.com>
Wed, 9 Feb 2022 16:16:09 +0000 (17:16 +0100)
committerPierre-Marie de Rodat <derodat@adacore.com>
Thu, 12 May 2022 12:38:36 +0000 (12:38 +0000)
We need to check that the designated subprograms of access-to-subprogram
types are subtype conformant before registering a common interpretation.

gcc/ada/

* sem_ch4.adb (Possible_Type_For_Conditional_Expression): Add
test for subtype conformance in the cases of
access-to-subprogram types.

gcc/ada/sem_ch4.adb

index d9cd78b..5987b79 100644 (file)
@@ -7904,11 +7904,15 @@ package body Sem_Ch4 is
 
       elsif Is_Access_Subprogram_Attribute (T1)
         and then Is_Access_Subprogram_Attribute (T2)
+        and then
+          Subtype_Conformant (Designated_Type (T1), Designated_Type (T2))
       then
          return T1;
 
       elsif Is_Access_Protected_Subprogram_Attribute (T1)
         and then Is_Access_Protected_Subprogram_Attribute (T2)
+        and then
+          Subtype_Conformant (Designated_Type (T1), Designated_Type (T2))
       then
          return T1;