+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
-- that holds value of the Aft attribute for the type.
-- 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
-- (that is, subprograms with the Interface_Alias attribute). In case of
-- overloaded entities it points to the parent subprogram of a derived
Fin_Addr_Ptr : Finalize_Address_Ptr)
is
begin
+ Lock_Task.all;
Master.Finalize_Address := Fin_Addr_Ptr;
+ Unlock_Task.all;
end Set_Finalize_Address;
- --------------------------
- -- Set_Finalize_Address --
- --------------------------
+ ----------------------------------------
+ -- Set_Heterogeneous_Finalize_Address --
+ ----------------------------------------
- procedure Set_Finalize_Address
+ procedure Set_Heterogeneous_Finalize_Address
(Obj : System.Address;
Fin_Addr_Ptr : Finalize_Address_Ptr)
is
Lock_Task.all;
Finalize_Address_Table.Set (Obj, Fin_Addr_Ptr);
Unlock_Task.all;
- end Set_Finalize_Address;
+ end Set_Heterogeneous_Finalize_Address;
--------------------------
-- Set_Is_Heterogeneous --
procedure Set_Finalize_Address
(Master : in out Finalization_Master;
Fin_Addr_Ptr : Finalize_Address_Ptr);
- -- Set the clean up routine of a finalization master. Note: this routine
- -- must precede the one below since RTSfind needs to match this one.
+ -- Set the clean up routine of a finalization master
- procedure Set_Finalize_Address
+ procedure Set_Heterogeneous_Finalize_Address
(Obj : System.Address;
Fin_Addr_Ptr : Finalize_Address_Ptr);
-- Add a relation pair object - Finalize_Address to the internal hash table
-- 2) Certain cases of anonymous access types usage
else
- Set_Finalize_Address (Addr, Fin_Address);
+ Set_Heterogeneous_Finalize_Address (Addr, Fin_Address);
Finalize_Address_Table_In_Use := True;
end if;
-- 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
- -- can't use Create_Itype. The entity may be exchanged when entering
- -- exiting a package body, so it has to have a proper parent field,
- -- so that the tree is always properly formatted for ASIS.
+ -- can't use Create_Itype.
-- This is messy, should be fixed ???
Full := Make_Defining_Identifier (Sloc (Id), Chars (Id));
Set_Is_Itype (Full);
Set_Associated_Node_For_Itype (Full, Related_Nod);
- Set_Parent (Full, Parent (Id));
Complete_Private_Subtype (Id, Full, Full_B, Related_Nod);
end if;