diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-09-05 16:18:54 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-09-05 16:18:54 +0200 |
commit | 544e7c17b592df04a71809db899725dc502103c9 (patch) | |
tree | f3011102073b1225ca7b45b4eb2636bba562246c /gcc | |
parent | 0613fb3358d0a523ed8148c589852c28b4aa1eb9 (diff) | |
download | gcc-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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 19 | ||||
-rw-r--r-- | gcc/ada/einfo.ads | 2 | ||||
-rw-r--r-- | gcc/ada/s-finmas.adb | 12 | ||||
-rw-r--r-- | gcc/ada/s-finmas.ads | 5 | ||||
-rw-r--r-- | gcc/ada/s-stposu.adb | 2 | ||||
-rw-r--r-- | gcc/ada/sem_ch3.adb | 5 |
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; |