From: Eric Botcazou Date: Wed, 4 Dec 2024 11:35:29 +0000 (+0100) Subject: ada: Fix small thinko in previous change X-Git-Tag: basepoints/gcc-16~3028 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4b330318626ec5907436aea8eb9c326da85f1e61;p=thirdparty%2Fgcc.git ada: Fix small thinko in previous change Even if the declaration of the conditional object is turned into a renaming during expansion, the conditional object must be finalized when the original object would have been. gcc/ada/ChangeLog: * exp_ch4.adb (Insert_Conditional_Object_Declaration): Create the Master_Node even if the declaration is turned into a renaming. --- diff --git a/gcc/ada/exp_ch4.adb b/gcc/ada/exp_ch4.adb index 2fc891a4e390..f44f21d654bb 100644 --- a/gcc/ada/exp_ch4.adb +++ b/gcc/ada/exp_ch4.adb @@ -13240,9 +13240,7 @@ package body Exp_Ch4 is -- cannot invoke Process_Transients_In_Expression on it since it is not -- a transient object (it has the lifetime of the original object). - if Nkind (Obj_Decl) = N_Object_Declaration - and then Needs_Finalization (Base_Type (Etype (Obj_Id))) - then + if Needs_Finalization (Base_Type (Etype (Obj_Id))) then Master_Node_Id := Make_Temporary (Loc, 'N'); Master_Node_Decl := Make_Master_Node_Declaration (Loc, Master_Node_Id, Obj_Id);