[Ada] Do not apply range checks inside generics in GNATprove mode
authorYannick Moy <moy@adacore.com>
Wed, 4 Nov 2020 15:11:51 +0000 (16:11 +0100)
committerPierre-Marie de Rodat <derodat@adacore.com>
Fri, 27 Nov 2020 09:15:58 +0000 (04:15 -0500)
gcc/ada/

* checks.adb (Selected_Range_Checks): Adapt the condition for
applying range checks so that it is not done inside generics.

gcc/ada/checks.adb

index c7a33217064c10550cce38077f0a89f4fd54d6b4..803bd21a586249d4474dc0a0b04964091317c2e8 100644 (file)
@@ -10585,10 +10585,10 @@ package body Checks is
    begin
       --  Checks will be applied only when generating code. In GNATprove mode,
       --  we do not apply the checks, but we still call Selected_Range_Checks
-      --  to possibly issue errors on SPARK code when a run-time error can be
-      --  detected at compile time.
+      --  outside of generics to possibly issue errors on SPARK code when a
+      --  run-time error can be detected at compile time.
 
-      if not Expander_Active and not GNATprove_Mode then
+      if Inside_A_Generic or (not GNATprove_Mode and not Expander_Active) then
          return Ret_Result;
       end if;