From: Gary Dismukes Date: Fri, 19 Mar 2021 23:28:38 +0000 (-0400) Subject: [Ada] Missing check for assigning too-large array to fixed-lower-bound object X-Git-Tag: basepoints/gcc-13~6684 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=33a3b5f3a5034c3b41bd34fdf145da9a20743a28;p=thirdparty%2Fgcc.git [Ada] Missing check for assigning too-large array to fixed-lower-bound object gcc/ada/ * sem_ch3.adb (Constrain_Index): Set the High_Bound of a fixed-lower-bound subtype's range to T (the subtype of the FLB index being constrained) rather than Base_Type (T). --- diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb index 346850de21a9..9ef937df71ea 100644 --- a/gcc/ada/sem_ch3.adb +++ b/gcc/ada/sem_ch3.adb @@ -14397,7 +14397,7 @@ package body Sem_Ch3 is -- If this is a range for a fixed-lower-bound subtype, then set the -- index itype's lower bound to the FLB and the index type's upper bound - -- to the high bound of the index base type's high bound, mark the itype + -- to the high bound of the index subtype's high bound, mark the itype -- as an FLB index subtype, and set the range's Etype to the itype. if Nkind (S) = N_Range and then Is_FLB_Index then @@ -14405,7 +14405,7 @@ package body Sem_Ch3 is (Def_Id, Make_Range (Sloc (S), Low_Bound => Low_Bound (S), - High_Bound => Type_High_Bound (Base_Type (T)))); + High_Bound => Type_High_Bound (T))); Set_Is_Fixed_Lower_Bound_Index_Subtype (Def_Id); else