diff options
-rw-r--r-- | gcc/ada/exp_ch7.adb | 64 | ||||
-rw-r--r-- | gcc/ada/libgnat/s-finpri.adb | 6 | ||||
-rw-r--r-- | gcc/ada/libgnat/s-finpri.ads | 12 | ||||
-rw-r--r-- | gcc/ada/rtsfind.ads | 4 |
4 files changed, 42 insertions, 44 deletions
diff --git a/gcc/ada/exp_ch7.adb b/gcc/ada/exp_ch7.adb index 50d5359..a62c744 100644 --- a/gcc/ada/exp_ch7.adb +++ b/gcc/ada/exp_ch7.adb @@ -85,10 +85,9 @@ package body Exp_Ch7 is -- Initialize calls: they are generated for either declarations or dynamic -- allocations of controlled objects with no initial value. They are always - -- followed by an attachment to the current finalization chain. For the - -- dynamic allocation case, this is the chain attached to the scope of the - -- access type definition; otherwise, this is the chain of the current - -- scope. + -- followed by an attachment to some finalization chain. For the dynamic + -- dynamic allocation case, this is the collection attached to the access + -- type definition; otherwise, this is the master of the current scope. -- Adjust calls: they are generated on two occasions: (1) for declarations -- or dynamic allocations of controlled objects with an initial value (with @@ -122,7 +121,7 @@ package body Exp_Ch7 is -- is expanded into: -- -- declare - -- Mnn : System.Finalization_Primitives.Finalization_Scope_Master; + -- Mnn : System.Finalization_Primitives.Finalization_Master; -- XMN : aliased System.Finalization_Primitives.Master_Node; -- X : Ctrl; @@ -203,8 +202,8 @@ package body Exp_Ch7 is -- at end -- _Finalizer; - -- In the case of a block containing a single controlled object, the scope - -- master degenerates into a single master node: + -- In the case of a block containing a single controlled object, the master + -- degenerates into a single master node: -- declare -- X : Ctrl := Init; @@ -268,7 +267,7 @@ package body Exp_Ch7 is -- These direct actions must be signalled to the post-processing machinery -- and this is achieved through the handling of Master_Node objects, which - -- are the items actually chained in finalization chains of scope masters. + -- are the items actually chained in the finalization chains of masters. -- With the default processing, they are created by Build_Finalizer for the -- controlled objects spotted by Requires_Cleanup_Actions. But when direct -- actions are carried out, they are generated by these actions and later @@ -1702,8 +1701,8 @@ package body Exp_Ch7 is Finalizer_Decls : List_Id := No_List; -- Local variable declarations - Finalization_Scope_Master : Entity_Id; - -- The Finalization Scope Master object + Finalization_Master : Entity_Id; + -- The Finalization Master object Finalizer_Stmts : List_Id := No_List; -- The statement list of the finalizer body @@ -1774,33 +1773,33 @@ package body Exp_Ch7 is ---------------------- procedure Build_Components is - Constraints : List_Id; - Scope_Master_Decl : Node_Id; - Scope_Master_Name : Name_Id; + Constraints : List_Id; + Master_Decl : Node_Id; + Master_Name : Name_Id; begin pragma Assert (Present (Decls)); -- If the context contains controlled objects, then we create the - -- finalization scope master, unless there is a single such object; - -- in this common case, we'll directly finalize the object. + -- finalization master, unless there is a single such object: in + -- this common case, we'll directly finalize the object. if Has_Ctrl_Objs then if Counter_Val > 1 then if For_Package_Spec then - Scope_Master_Name := + Master_Name := New_External_Name (Name_uMaster, Suffix => "_spec"); elsif For_Package_Body then - Scope_Master_Name := + Master_Name := New_External_Name (Name_uMaster, Suffix => "_body"); else - Scope_Master_Name := New_Internal_Name ('M'); + Master_Name := New_Internal_Name ('M'); end if; - Finalization_Scope_Master := - Make_Defining_Identifier (Loc, Scope_Master_Name); + Finalization_Master := + Make_Defining_Identifier (Loc, Master_Name); - -- The scope master is statically parameterized by the context + -- The master is statically parameterized by the context Constraints := New_List; Append_To (Constraints, @@ -1811,20 +1810,20 @@ package body Exp_Ch7 is Append_To (Constraints, New_Occurrence_Of (Boolean_Literals (For_Package), Loc)); - Scope_Master_Decl := + Master_Decl := Make_Object_Declaration (Loc, - Defining_Identifier => Finalization_Scope_Master, + Defining_Identifier => Finalization_Master, Object_Definition => Make_Subtype_Indication (Loc, Subtype_Mark => New_Occurrence_Of - (RTE (RE_Finalization_Scope_Master), Loc), + (RTE (RE_Finalization_Master), Loc), Constraint => Make_Index_Or_Discriminant_Constraint (Loc, Constraints => Constraints))); - Prepend_To (Decls, Scope_Master_Decl); - Analyze (Scope_Master_Decl, Suppress => All_Checks); + Prepend_To (Decls, Master_Decl); + Analyze (Master_Decl, Suppress => All_Checks); end if; if Exceptions_OK then @@ -1976,8 +1975,7 @@ package body Exp_Ch7 is Name => New_Occurrence_Of (RTE (RE_Finalize_Master), Loc), Parameter_Associations => - New_List - (New_Occurrence_Of (Finalization_Scope_Master, Loc))); + New_List (New_Occurrence_Of (Finalization_Master, Loc))); -- For CodePeer, the exception handlers normally generated here -- generate complex flowgraphs which result in capacity problems. @@ -2895,11 +2893,11 @@ package body Exp_Ch7 is -- Create the declaration of the Master_Node for the object and -- insert it before the declaration of the object itself, except -- for the case where it is the only object because it will play - -- the role of a degenerated scope master and therefore needs to - -- be inserted at the same place the scope master would have been. + -- the role of a degenerated master and therefore needs to be + -- inserted at the same place the master would have been. else pragma Assert (No (Finalization_Master_Node (Obj_Id))); - -- For one object, use the Sloc the scope master would have had + -- For one object, use the Sloc the master would have had if Counter_Val = 1 then Master_Node_Loc := Sloc (N); @@ -3157,7 +3155,7 @@ package body Exp_Ch7 is Make_Attribute_Reference (Loc, Prefix => New_Occurrence_Of (Obj_Id, Loc), Attribute_Name => Name_Unrestricted_Access), - New_Occurrence_Of (Finalization_Scope_Master, Loc))); + New_Occurrence_Of (Finalization_Master, Loc))); -- Finalize_Address is not generated in CodePeer mode because the -- body contains address arithmetic. So we don't want to generate @@ -3179,7 +3177,7 @@ package body Exp_Ch7 is Prefix => New_Occurrence_Of (Master_Node_Id, Loc), Attribute_Name => Name_Unrestricted_Access), - New_Occurrence_Of (Finalization_Scope_Master, Loc))); + New_Occurrence_Of (Finalization_Master, Loc))); end if; end if; diff --git a/gcc/ada/libgnat/s-finpri.adb b/gcc/ada/libgnat/s-finpri.adb index 731c913..1fbd391 100644 --- a/gcc/ada/libgnat/s-finpri.adb +++ b/gcc/ada/libgnat/s-finpri.adb @@ -75,7 +75,7 @@ package body System.Finalization_Primitives is (Object_Address : System.Address; Finalize_Address : not null Finalize_Address_Ptr; Node : not null Master_Node_Ptr; - Master : in out Finalization_Scope_Master) + Master : in out Finalization_Master) is begin Attach_Object_To_Node (Object_Address, Finalize_Address, Node.all); @@ -105,7 +105,7 @@ package body System.Finalization_Primitives is procedure Chain_Node_To_Master (Node : not null Master_Node_Ptr; - Master : in out Finalization_Scope_Master) + Master : in out Finalization_Master) is begin Node.Next := Master.Head; @@ -234,7 +234,7 @@ package body System.Finalization_Primitives is -- Finalize_Master -- --------------------- - procedure Finalize_Master (Master : in out Finalization_Scope_Master) is + procedure Finalize_Master (Master : in out Finalization_Master) is procedure Raise_From_Controlled_Operation (X : Exception_Occurrence); pragma Import (Ada, Raise_From_Controlled_Operation, "__gnat_raise_from_controlled_operation"); diff --git a/gcc/ada/libgnat/s-finpri.ads b/gcc/ada/libgnat/s-finpri.ads index 0632a72..9fe9ef4 100644 --- a/gcc/ada/libgnat/s-finpri.ads +++ b/gcc/ada/libgnat/s-finpri.ads @@ -60,7 +60,7 @@ package System.Finalization_Primitives with Preelaborate is -- level of the program or associated with the declarative part of a -- subprogram or other closed scopes (block statements, for example). - type Finalization_Scope_Master + type Finalization_Master (Exceptions_OK : Boolean; Extra_Info : Boolean; Library_Level : Boolean) is limited private; @@ -71,7 +71,7 @@ package System.Finalization_Primitives with Preelaborate is (Object_Address : System.Address; Finalize_Address : not null Finalize_Address_Ptr; Node : not null Master_Node_Ptr; - Master : in out Finalization_Scope_Master); + Master : in out Finalization_Master); -- Associates a controlled object and its master node with a given master. -- Finalize_Address denotes the operation to be called to finalize the -- object (which could be a user-declared Finalize procedure or a procedure @@ -89,12 +89,12 @@ package System.Finalization_Primitives with Preelaborate is procedure Chain_Node_To_Master (Node : not null Master_Node_Ptr; - Master : in out Finalization_Scope_Master); + Master : in out Finalization_Master); -- Chain a master node to the given master. This is used to chain the node -- to the master of the enclosing scope for the objects that need special -- processing mentioned for Attach_Object_To_Node. - procedure Finalize_Master (Master : in out Finalization_Scope_Master); + procedure Finalize_Master (Master : in out Finalization_Master); -- Finalizes each of the controlled objects associated with Master, in the -- reverse of the order in which they were attached. Calls to the procedure -- with a Master that has already been finalized have no effects. @@ -191,10 +191,10 @@ private Next : Master_Node_Ptr := null; end record; - -- Finalization scope master type structure. A unique master is associated + -- Finalization master type structure. A unique master is associated -- with each scope containing controlled objects. - type Finalization_Scope_Master + type Finalization_Master (Exceptions_OK : Boolean; Extra_Info : Boolean; Library_Level : Boolean) is limited diff --git a/gcc/ada/rtsfind.ads b/gcc/ada/rtsfind.ads index 266bdb4..d67dc0e 100644 --- a/gcc/ada/rtsfind.ads +++ b/gcc/ada/rtsfind.ads @@ -923,7 +923,7 @@ package Rtsfind is RE_Chain_Node_To_Master, -- System.Finalization_Primitives RE_Finalization_Collection, -- System.Finalization_Primitives RE_Finalization_Collection_Ptr, -- System.Finalization_Primitives - RE_Finalization_Scope_Master, -- System.Finalization_Primitives + RE_Finalization_Master, -- System.Finalization_Primitives RE_Finalize_Master, -- System.Finalization_Primitives RE_Finalize_Object, -- System.Finalization_Primitives RE_Master_Node, -- System.Finalization_Primitives @@ -2572,7 +2572,7 @@ package Rtsfind is RE_Chain_Node_To_Master => System_Finalization_Primitives, RE_Finalization_Collection => System_Finalization_Primitives, RE_Finalization_Collection_Ptr => System_Finalization_Primitives, - RE_Finalization_Scope_Master => System_Finalization_Primitives, + RE_Finalization_Master => System_Finalization_Primitives, RE_Finalize_Master => System_Finalization_Primitives, RE_Finalize_Object => System_Finalization_Primitives, RE_Master_Node => System_Finalization_Primitives, |