https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114300

--- Comment #2 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
This should work on mainline:

diff --git a/gcc/ada/exp_ch7.adb b/gcc/ada/exp_ch7.adb
index 640ad5c60b8..ee948e0934b 100644
--- a/gcc/ada/exp_ch7.adb
+++ b/gcc/ada/exp_ch7.adb
@@ -2522,7 +2522,11 @@ package body Exp_Ch7 is
                elsif Ekind (Obj_Id) = E_Variable
                  and then Is_RTE (Obj_Typ, RE_Master_Node)
                then
-                  Processing_Actions (Decl);
+                  if not
+                    Is_Ignored_Ghost_Entity (Finalization_Master_Node
(Obj_Id))
+                  then
+                     Processing_Actions (Decl);
+                  end if;

                --  Ignored Ghost objects do not need any cleanup actions
                --  because they will not appear in the final tree.

Reply via email to