[Ada] Validate_Access_Subprogram_Instance: check if not null types match
authorGhjuvan Lacambre <lacambre@adacore.com>
Mon, 16 Dec 2019 10:33:13 +0000 (10:33 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Mon, 16 Dec 2019 10:33:13 +0000 (10:33 +0000)
2019-12-16  Ghjuvan Lacambre  <lacambre@adacore.com>

gcc/ada/

* sem_ch12.adb (Validate_Access_Subprogram_Instance): Add
Can_Never_Be_Null checks.

From-SVN: r279413

gcc/ada/ChangeLog
gcc/ada/sem_ch12.adb

index 58517e6101f05e14a52abb35cc97e0e5460fca82..f110a9b9c0837a9be61061e4190778c81f41ea00 100644 (file)
@@ -1,3 +1,8 @@
+2019-12-16  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * sem_ch12.adb (Validate_Access_Subprogram_Instance): Add
+       Can_Never_Be_Null checks.
+
 2019-12-16  Eric Botcazou  <ebotcazou@adacore.com>
 
        * doc/gnat_rm/implementation_defined_pragmas.rst (VFA): Document
index d405297ef35e01e59ca2ec3f07fceb5456ab3495..5b7ce936281a16a071ed74127635d475b1d7dac8 100644 (file)
@@ -12303,6 +12303,12 @@ package body Sem_Ch12 is
             Error_Msg_NE
               ("actual for formal & must have convention %", Actual, Gen_T);
          end if;
+
+         if Can_Never_Be_Null (A_Gen_T) /= Can_Never_Be_Null (Act_T) then
+            Error_Msg_NE
+               ("non null exclusion of actual and formal & do not match",
+               Actual, Gen_T);
+         end if;
       end Validate_Access_Subprogram_Instance;
 
       -----------------------------------