From: Gary Dismukes Date: Fri, 19 Mar 2021 00:23:04 +0000 (-0400) Subject: [Ada] Error issued on string literal assigned to fixed-lower-bound array X-Git-Tag: basepoints/gcc-13~6686 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f44441d80fa8523a2e1b294b8563180202879727;p=thirdparty%2Fgcc.git [Ada] Error issued on string literal assigned to fixed-lower-bound array gcc/ada/ * exp_util.adb (Expand_Sliding_Conversion): Move test of Is_Fixed_Lower_Bound_Subtype to an assertion. Exclude string literals from sliding expansion. --- diff --git a/gcc/ada/exp_util.adb b/gcc/ada/exp_util.adb index 19b8c656e2cb..ed1a016be48d 100644 --- a/gcc/ada/exp_util.adb +++ b/gcc/ada/exp_util.adb @@ -5323,7 +5323,8 @@ package body Exp_Util is procedure Expand_Sliding_Conversion (N : Node_Id; Arr_Typ : Entity_Id) is pragma Assert (Is_Array_Type (Arr_Typ) - and then not Is_Constrained (Arr_Typ)); + and then not Is_Constrained (Arr_Typ) + and then Is_Fixed_Lower_Bound_Array_Subtype (Arr_Typ)); Constraints : List_Id; Index : Node_Id := First_Index (Arr_Typ); @@ -5342,7 +5343,10 @@ package body Exp_Util is All_FLBs_Match : Boolean := True; begin - if Is_Fixed_Lower_Bound_Array_Subtype (Arr_Typ) then + -- Sliding should never be needed for string literals, because they have + -- their bounds set according to the applicable index constraint. + + if Nkind (N) /= N_String_Literal then Constraints := New_List; Act_Subt := Get_Actual_Subtype (N);