The expansion of array concatenation disables checks too much, so
reenable checks that are needed on the relevant internal subtype
declaration.

Tested on x86_64-pc-linux-gnu, committed on trunk

gcc/ada/

        * exp_ch4.adb (Expand_Concatenate): Enable needed range checks.
diff --git a/gcc/ada/exp_ch4.adb b/gcc/ada/exp_ch4.adb
--- a/gcc/ada/exp_ch4.adb
+++ b/gcc/ada/exp_ch4.adb
@@ -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


Reply via email to