aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2011-09-05 16:18:54 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2011-09-05 16:18:54 +0200
commit544e7c17b592df04a71809db899725dc502103c9 (patch)
treef3011102073b1225ca7b45b4eb2636bba562246c
parent0613fb3358d0a523ed8148c589852c28b4aa1eb9 (diff)
downloadgcc-544e7c17b592df04a71809db899725dc502103c9.zip
gcc-544e7c17b592df04a71809db899725dc502103c9.tar.gz
gcc-544e7c17b592df04a71809db899725dc502103c9.tar.bz2
[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
-rw-r--r--gcc/ada/ChangeLog19
-rw-r--r--gcc/ada/einfo.ads2
-rw-r--r--gcc/ada/s-finmas.adb12
-rw-r--r--gcc/ada/s-finmas.ads5
-rw-r--r--gcc/ada/s-stposu.adb2
-rw-r--r--gcc/ada/sem_ch3.adb5
6 files changed, 31 insertions, 14 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 35d8af9..b4ddbf3 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,5 +1,24 @@
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
no longer needs to search through the entities of the return
statement scope to find the _chain.
diff --git a/gcc/ada/einfo.ads b/gcc/ada/einfo.ads
index bfbe2f8..c2657dc 100644
--- a/gcc/ada/einfo.ads
+++ b/gcc/ada/einfo.ads
@@ -391,7 +391,7 @@ package Einfo is
-- 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
diff --git a/gcc/ada/s-finmas.adb b/gcc/ada/s-finmas.adb
index a08bb08..cfeb816 100644
--- a/gcc/ada/s-finmas.adb
+++ b/gcc/ada/s-finmas.adb
@@ -463,14 +463,16 @@ package body System.Finalization_Masters is
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
@@ -478,7 +480,7 @@ package body System.Finalization_Masters 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 --
diff --git a/gcc/ada/s-finmas.ads b/gcc/ada/s-finmas.ads
index 0ffc78a..fc4d143 100644
--- a/gcc/ada/s-finmas.ads
+++ b/gcc/ada/s-finmas.ads
@@ -119,10 +119,9 @@ package System.Finalization_Masters is
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
diff --git a/gcc/ada/s-stposu.adb b/gcc/ada/s-stposu.adb
index 828c47e..4fbacfa 100644
--- a/gcc/ada/s-stposu.adb
+++ b/gcc/ada/s-stposu.adb
@@ -286,7 +286,7 @@ package body System.Storage_Pools.Subpools is
-- 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;
diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb
index c42e37c..8802ae5 100644
--- a/gcc/ada/sem_ch3.adb
+++ b/gcc/ada/sem_ch3.adb
@@ -17052,16 +17052,13 @@ package body Sem_Ch3 is
-- 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;