Commit 544e7c17 by Arnaud Charlet

[multiple changes]

2011-09-05  Hristian Kirtchev  <kirtchev@adacore.com>

	* s-finmas.adb (Set_Finalize_Address (Address,
	Finalize_Address_Ptr)): Renamed to Set_Heterogeneous_Finalize_Address.
	(Set_Finalize_Address (in out Finalization_Master,
	Finalize_Address_Ptr): Add synchronization code.
	* s-finmas.ads (Set_Finalize_Address (Address,
	Finalize_Address_Ptr)): Renamed to Set_Heterogeneous_Finalize_Address.
	* s-stposu.adb (Allocate_Any_Controlled): Update the call to
	Set_Finalize_Address for the heterogeneous case.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb: Undo previous change, not suitable after all.

2011-09-05  Robert Dewar  <dewar@adacore.com>

	* einfo.ads: Minor comment clarification.

From-SVN: r178550
parent 0613fb33
2011-09-05 Hristian Kirtchev <kirtchev@adacore.com> 2011-09-05 Hristian Kirtchev <kirtchev@adacore.com>
* s-finmas.adb (Set_Finalize_Address (Address,
Finalize_Address_Ptr)): Renamed to Set_Heterogeneous_Finalize_Address.
(Set_Finalize_Address (in out Finalization_Master,
Finalize_Address_Ptr): Add synchronization code.
* s-finmas.ads (Set_Finalize_Address (Address,
Finalize_Address_Ptr)): Renamed to Set_Heterogeneous_Finalize_Address.
* s-stposu.adb (Allocate_Any_Controlled): Update the call to
Set_Finalize_Address for the heterogeneous case.
2011-09-05 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb: Undo previous change, not suitable after all.
2011-09-05 Robert Dewar <dewar@adacore.com>
* einfo.ads: Minor comment clarification.
2011-09-05 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch6.adb (Move_Activation_Chain): Rewritten. The routine * exp_ch6.adb (Move_Activation_Chain): Rewritten. The routine
no longer needs to search through the entities of the return no longer needs to search through the entities of the return
statement scope to find the _chain. statement scope to find the _chain.
......
...@@ -391,7 +391,7 @@ package Einfo is ...@@ -391,7 +391,7 @@ package Einfo is
-- that holds value of the Aft attribute for the type. -- that holds value of the Aft attribute for the type.
-- Alias (Node18) -- Alias (Node18)
-- Present in overloaded entities (literals, subprograms, entries) and -- Present in overloadable entities (literals, subprograms, entries) and
-- subprograms that cover a primitive operation of an abstract interface -- subprograms that cover a primitive operation of an abstract interface
-- (that is, subprograms with the Interface_Alias attribute). In case of -- (that is, subprograms with the Interface_Alias attribute). In case of
-- overloaded entities it points to the parent subprogram of a derived -- overloaded entities it points to the parent subprogram of a derived
......
...@@ -463,14 +463,16 @@ package body System.Finalization_Masters is ...@@ -463,14 +463,16 @@ package body System.Finalization_Masters is
Fin_Addr_Ptr : Finalize_Address_Ptr) Fin_Addr_Ptr : Finalize_Address_Ptr)
is is
begin begin
Lock_Task.all;
Master.Finalize_Address := Fin_Addr_Ptr; Master.Finalize_Address := Fin_Addr_Ptr;
Unlock_Task.all;
end Set_Finalize_Address; end Set_Finalize_Address;
-------------------------- ----------------------------------------
-- Set_Finalize_Address -- -- Set_Heterogeneous_Finalize_Address --
-------------------------- ----------------------------------------
procedure Set_Finalize_Address procedure Set_Heterogeneous_Finalize_Address
(Obj : System.Address; (Obj : System.Address;
Fin_Addr_Ptr : Finalize_Address_Ptr) Fin_Addr_Ptr : Finalize_Address_Ptr)
is is
...@@ -478,7 +480,7 @@ package body System.Finalization_Masters is ...@@ -478,7 +480,7 @@ package body System.Finalization_Masters is
Lock_Task.all; Lock_Task.all;
Finalize_Address_Table.Set (Obj, Fin_Addr_Ptr); Finalize_Address_Table.Set (Obj, Fin_Addr_Ptr);
Unlock_Task.all; Unlock_Task.all;
end Set_Finalize_Address; end Set_Heterogeneous_Finalize_Address;
-------------------------- --------------------------
-- Set_Is_Heterogeneous -- -- Set_Is_Heterogeneous --
......
...@@ -119,10 +119,9 @@ package System.Finalization_Masters is ...@@ -119,10 +119,9 @@ package System.Finalization_Masters is
procedure Set_Finalize_Address procedure Set_Finalize_Address
(Master : in out Finalization_Master; (Master : in out Finalization_Master;
Fin_Addr_Ptr : Finalize_Address_Ptr); Fin_Addr_Ptr : Finalize_Address_Ptr);
-- Set the clean up routine of a finalization master. Note: this routine -- Set the clean up routine of a finalization master
-- must precede the one below since RTSfind needs to match this one.
procedure Set_Finalize_Address procedure Set_Heterogeneous_Finalize_Address
(Obj : System.Address; (Obj : System.Address;
Fin_Addr_Ptr : Finalize_Address_Ptr); Fin_Addr_Ptr : Finalize_Address_Ptr);
-- Add a relation pair object - Finalize_Address to the internal hash table -- Add a relation pair object - Finalize_Address to the internal hash table
......
...@@ -286,7 +286,7 @@ package body System.Storage_Pools.Subpools is ...@@ -286,7 +286,7 @@ package body System.Storage_Pools.Subpools is
-- 2) Certain cases of anonymous access types usage -- 2) Certain cases of anonymous access types usage
else else
Set_Finalize_Address (Addr, Fin_Address); Set_Heterogeneous_Finalize_Address (Addr, Fin_Address);
Finalize_Address_Table_In_Use := True; Finalize_Address_Table_In_Use := True;
end if; end if;
......
...@@ -17052,16 +17052,13 @@ package body Sem_Ch3 is ...@@ -17052,16 +17052,13 @@ package body Sem_Ch3 is
-- The Base_Type is already completed, we can complete the subtype -- The Base_Type is already completed, we can complete the subtype
-- now. We have to create a new entity with the same name, Thus we -- now. We have to create a new entity with the same name, Thus we
-- can't use Create_Itype. The entity may be exchanged when entering -- can't use Create_Itype.
-- exiting a package body, so it has to have a proper parent field,
-- so that the tree is always properly formatted for ASIS.
-- This is messy, should be fixed ??? -- This is messy, should be fixed ???
Full := Make_Defining_Identifier (Sloc (Id), Chars (Id)); Full := Make_Defining_Identifier (Sloc (Id), Chars (Id));
Set_Is_Itype (Full); Set_Is_Itype (Full);
Set_Associated_Node_For_Itype (Full, Related_Nod); Set_Associated_Node_For_Itype (Full, Related_Nod);
Set_Parent (Full, Parent (Id));
Complete_Private_Subtype (Id, Full, Full_B, Related_Nod); Complete_Private_Subtype (Id, Full, Full_B, Related_Nod);
end if; end if;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment