[Ada] Missing check on array concatenation
authorArnaud Charlet <charlet@adacore.com>
Fri, 10 Jul 2020 12:21:53 +0000 (08:21 -0400)
committerPierre-Marie de Rodat <derodat@adacore.com>
Mon, 19 Oct 2020 09:53:41 +0000 (05:53 -0400)
gcc/ada/

* exp_ch4.adb (Expand_Concatenate): Enable needed range checks.

gcc/ada/exp_ch4.adb

index 7139e4948b3540206a37ab9fbbb76d8b4ae2ce4c..526bec2fcca12dfe5b3e7eb87e43266b1f1fe2e5 100644 (file)
@@ -3524,12 +3524,13 @@ package body Exp_Ch4 is
          --  Note that we have arranged that the result will not be treated as
          --  a static constant, so we won't get an illegality during this
          --  insertion.
+         --  We also enable checks (in particular range checks) in case the
+         --  bounds of Subtyp_Ind are out of range.
 
          Insert_Action (Cnode,
            Make_Object_Declaration (Loc,
              Defining_Identifier => Ent,
-             Object_Definition   => Subtyp_Ind),
-           Suppress => All_Checks);
+             Object_Definition   => Subtyp_Ind));
       end if;
 
       --  If the result of the concatenation appears as the initializing