]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ada: Fix small thinko in previous change
authorEric Botcazou <ebotcazou@adacore.com>
Wed, 4 Dec 2024 11:35:29 +0000 (12:35 +0100)
committerMarc Poulhiès <dkm@gcc.gnu.org>
Fri, 3 Jan 2025 15:39:12 +0000 (16:39 +0100)
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.

gcc/ada/exp_ch4.adb

index 2fc891a4e390681bd3b016600cd9cf74c5b9e61a..f44f21d654bb21e2cdd4990f7bdec7a2cb026c51 100644 (file)
@@ -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);