[Ada] Memory leak in concatenation with Initialize_Scalars

gcc/ada/

	* exp_ch4.adb (Expand_Concatenate): Call Set_No_Initialization
	on the N_Allocator node that is supposed to allocate on the
	secondary stack.
This commit is contained in:
Bob Duff 2020-10-23 17:27:34 -04:00 committed by Pierre-Marie de Rodat
parent a160b4e046
commit 0ea529086e

View File

@ -3505,8 +3505,17 @@ package body Exp_Ch4 is
Alloc :=
Make_Allocator (Loc,
Expression => New_Occurrence_Of (ConstrT, Loc));
-- Allocate on the secondary stack. This is currently done
-- only for type String, which normally doesn't have default
-- initialization, but we need to Set_No_Initialization in case
-- of Initialize_Scalars or Normalize_Scalars; otherwise, the
-- allocator will get transformed and will not use the secondary
-- stack.
Set_Storage_Pool (Alloc, RTE (RE_SS_Pool));
Set_Procedure_To_Call (Alloc, RTE (RE_SS_Allocate));
Set_No_Initialization (Alloc);
Temp := Make_Temporary (Loc, 'R', Alloc);
Insert_Action (Cnode,