https://gcc.gnu.org/g:1592d6f9e7c53331bc6df568c2f2d032a4aab571

commit r16-5375-g1592d6f9e7c53331bc6df568c2f2d032a4aab571
Author: Ronan Desplanques <[email protected]>
Date:   Mon Nov 3 12:44:49 2025 +0100

    ada: Use Finalizable for suspension objects
    
    The only reason Suspension_Object was a tagged type before this patch was
    to have finalization. This patch makes it use the Finalizable aspect,
    which is more lightweight.
    
    gcc/ada/ChangeLog:
    
            * libgnarl/a-sytaco.ads (Suspension_Object): Use Finalizable aspect.

Diff:
---
 gcc/ada/libgnarl/a-sytaco.ads | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/gcc/ada/libgnarl/a-sytaco.ads b/gcc/ada/libgnarl/a-sytaco.ads
index 24b2a8076b91..602e31a74f4a 100644
--- a/gcc/ada/libgnarl/a-sytaco.ads
+++ b/gcc/ada/libgnarl/a-sytaco.ads
@@ -35,7 +35,6 @@
 
 with System.Task_Primitives;
 
-with Ada.Finalization;
 with Ada.Task_Identification;
 
 package Ada.Synchronous_Task_Control with
@@ -75,14 +74,17 @@ private
    procedure Finalize (S : in out Suspension_Object);
    --  Finalization for Suspension_Object
 
-   type Suspension_Object is
-     new Ada.Finalization.Limited_Controlled with
-   record
+   type Suspension_Object is limited record
       SO : System.Task_Primitives.Suspension_Object;
       --  Use low-level suspension objects so that the synchronization
       --  functionality provided by this object can be achieved using
       --  efficient operating system primitives.
-   end record;
+   end record
+   with
+     Finalizable =>
+       (Initialize           => Initialize,
+        Finalize             => Finalize,
+        Relaxed_Finalization => False);
 
    pragma Inline (Set_True);
    pragma Inline (Set_False);

Reply via email to