summaryrefslogtreecommitdiff
path: root/gcc/ada/s-finmas.ads
Commit message (Collapse)AuthorAgeFilesLines
* 2011-10-24 Sergey Rybin <rybin@adacore.com frybin>charlet2011-10-241-6/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gnat_ugn.texi: For gnatelim, move the note about using the GNAT driver for getting the project support into gnatelim section. 2011-10-24 Robert Dewar <dewar@adacore.com> * gnat_rm.texi: Minor correction to documentation on address clause. 2011-10-24 Hristian Kirtchev <kirtchev@adacore.com> * s-finmas.adb (Attach): Synchronize and call the unprotected version. (Attach_Unprotected): New routine. (Delete_Finalize_Address): Removed. (Delete_Finalize_Address_Unprotected): New routine. (Detach): Synchronize and call the unprotected version. (Detach_Unprotected): Remove locking. (Finalize): Add various comment on synchronization. Lock the critical region and call the unprotected versions of routines. (Finalize_Address): Removed. (Finalize_Address_Unprotected): New routine. (Set_Finalize_Address): Synchronize and call the unprotected version. (Set_Finalize_Address_Unprotected): New routine. (Set_Heterogeneous_Finalize_Address): Removed. (Set_Heterogeneous_Finalize_Address_Unprotected): New routine. (Set_Is_Heterogeneous): Add comment on synchronization and locking. * s-finmas.ads: Flag Finalization_Started is no longer atomic because synchronization uses task locking / unlocking. (Attach): Add comment on usage. (Attach_Unprotected): New routine. (Delete_Finalize_Address): Renamed to Delete_Finalize_Address_Unprotected. (Detach): Add comment on usage. (Detach_Unprotected): New routine. (Finalize_Address): Renamed to Finalize_Address_Unprotected. (Set_Finalize_Address): Add comment on usage. (Set_Finalize_Address_Unprotected): New routine. (Set_Heterogeneous_Finalize_Address): Renamed to Set_Heterogeneous_Finalize_Address_Unprotected. * s-stposu.adb (Allocate_Any_Controlled): Add local variable Allocation_Locked. Add various comments on synchronization. Lock the critical region and call the unprotected version of routines. (Deallocate_Any_Controlled): Add various comments on synchronization. Lock the critical region and call the unprotected version of routines. 2011-10-24 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Set_Fixed_Range): The bounds of a fixed point type are universal and must carry the corresponding type. * sem_eval.adb (Check_Non_Static_Context): If the type of the expression is universal real, as may be the case for a fixed point expression with constant operands in the context of a conversion, there is nothing to check. * s-finmas.adb: Minor reformatting git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180368 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-09-05 Hristian Kirtchev <kirtchev@adacore.com>charlet2011-09-051-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * s-finmas.adb (Set_Finalize_Address): Explain the reason for the synchronization. Move the test for null from s-stposu.Allocate_Any_Controlled to this routine since the check needs to be protected too. (Set_Heterogeneous_Finalize_Address): Explain the reason for the synchronization code. * s-finmas.ads (Set_Heterogeneous_Finalize_Address): Add comment explaining the context in which this routine is used. * s-stposu.adb (Allocate_Any_Controlled): Move the test for null to s-finmas.Set_Finalize_Address. 2011-09-05 Ed Schonberg <schonberg@adacore.com> * einfo.ads: Document that itypes have no parent field. 2011-09-05 Robert Dewar <dewar@adacore.com> * rtsfind.adb (Check_CRT): Check for overloaded entity * rtsfind.ads: Document that entities to be found by rtsfind cannot be overloaded * s-taenca.adb, s-tasren.adb, s-tpobop.adb, s-tpoben.ads, s-tpoben.adb (Lock_Entries_With_Status): New name for Lock_Entries with two arguments (changed to meet rtsfind no overloading rule). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178551 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-09-05 Hristian Kirtchev <kirtchev@adacore.com>charlet2011-09-051-3/+2
| | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178550 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-08-29 Johannes Kanig <kanig@adacore.com>charlet2011-08-291-45/+91
| | | | | | | | | | | | | * debug.adb: Add comments. 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com> * impunit.adb, s-stposu.adb, s-stposu.ads, exp_ch4.adb, s-finmas.adb, s-finmas.ads: Redo previous change. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178247 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-08-29 Ed Schonberg <schonberg@adacore.com>charlet2011-08-291-20/+5
| | | | | | | | | | | | | | | | | | | * exp_ch5.adb (Expand_Iterator_Loop): Handle properly a loop over a container of a derived type. 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com> * impunit.adb, s-stposu.adb, s-stposu.ads, exp_ch4.adb, s-finmas.adb, s-finmas.ads: Revert previous change. 2011-08-29 Ed Schonberg <schonberg@adacore.com> * a-cidlli.adb, a-cidlli.ads, a-cihama.adb, a-cihama.ads, a-ciorse.adb, a-ciorse.ads: Add iterator machinery to containers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178237 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-08-29 Yannick Moy <moy@adacore.com>charlet2011-08-291-5/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gnat1drv.adb (Adjust_Global_Switches): Restore expansion of tagged types and dispatching calls in Alfa mode. * lib-xref-alfa.adb (Collect_ALFA): Rewrite computation of correspondance between body and spec scopes, to reuse utility functions (Traverse_Declarations_Or_Statements): Protect access to body for stub by testing the presence of the library unit for the body * sem_ch6.adb (Set_Actual_Subtypes): take into account that in Alfa mode the expansion of accept statements is skipped * sem_util.adb, sem_util.ads (Unique_Entity): New function returning the unique entity corresponding to the one returned by Unique_Defining_Entity applied to the enclosing declaration of the argument. 2011-08-29 Bob Duff <duff@adacore.com> * treepr.ads: Improve debugging facilities. pn(x) no longer crashes in gdb when x is not a node (it can be a node list, name_id, etc). pp is an alias for pn. ppp is an alias for pt. 2011-08-29 Javier Miranda <miranda@adacore.com> * exp_aggr.adb (Expand_Record_Aggregate): Use the top-level enclosing aggregate to take a consistent decision on the need to convert into assignments aggregates that initialize constant objects. 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch4.adb (Expand_Allocator_Expression): Add a call to Build_Allocate_Deallocate_Proc in order to handle allocation of non-controlled objects on subpools. * impunit.adb: Remove s-finmas and s-spsufi since they were never meant to be end-user visible. * s-finmas.adb: Add with and use clause for System.HTable. Add an instantiation of Simple_HTable which provides a mapping between the address of a controlled object and the corresponding Finalize_Address used to clean up the object. The table is used when a master is operating in heterogeneous mode. (Attach): Explain why the input node is not verified on being already attached. (Delete_Finalize_Address): New routine. (Detach): Add pragma Assert which ensures that a node is already attached. (Finalize): Add local variable Cleanup. Rewrite the iteration scheme since nodes are no longer removed on traversal. Explain why node detachment is undesirable in this case. (Get_Finalize_Address): New routine. (Hash): New routine. (Is_Empty_List): Removed. (pm): Renamed to Print_Master. Add output for discriminant Is_Homogeneous. Comment reformatting. (Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine. * s-finmas.ads: Various comments additions / improvements. Type Finalization_Master has a discriminant which determines the mode of operation. (Delete_Finalize_Address): New routine. (Get_Finalize_Address): New routine. (pm): Renamed to Print_Master. (Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine. * s-stposu.adb: Add with clause for System.Address_Image; Add with and use clause for System.IO. (Allocate_Any_Controlled): Add machinery to set TSS primitive Finalize_Address depending on the mode of allocation and the mode of the master. (Deallocate_Any_Controlled): Remove the relation pair object - Finalize_Address regardless of the master mode. Add comment explaining the reason. (Detach): Ensure that fields Prev and Next are null after detachment. (Finalize_Pool): Remove local variable Next_Ptr. Rewrite the iteration scheme to check whether the list of subpools is empty. There is no longer need to store the next subpool or advance the current pointer. (Is_Empty_List): New routine. (Print_Pool): New routine. (Print_Subpool): New routine. * s-stposu.ads: Various comments additions / improvements. Field Master of type Root_Subpool is now a heterogeneous collection. (Print_Pool): New routine. (Print_Subpool): New routine. 2011-08-29 Ed Schonberg <schonberg@adacore.com> * exp_ch5.adb (Expand_N_Iterator_Loop): Implement Ada2012 loop iterator forms, using aspects of container types. * sem_ch3.adb (Find_Type_Name): Preserve Has_Delayed_Aspects and Has_Implicit_Dereference flags, that may be set on the partial view. * sem_ch4.adb (Process_Overloaded_Indexed_Component): Prefix may be a container type with an indexing aspect. (Analyze_Quantified_Expression): Analyze construct with expansion disabled, because it will be rewritten as a loop during expansion. (Try_Container_Indexing): The prefix itself may be a container type with an indexing aspect, as with a vector of vectors. * sem_ch5.adb (Analyze_Iteration_Scheme): In a generic context, analyze the original doamin of iteration, for name capture. (Analyze_Iterator_Specification): If the domain is an expression that needs finalization, create a separate declaration for it. For an iterator with "of" retrieve default iterator info from aspect of container type. For "in" iterator, retrieve type of Iterate function. * sem_ch13.adb (Check_Iterator_Function): Fix typo. (Check_Aspect_At_End_Of_Declaration): Make type unfrozen before analysis, to prevent spurious errors about late attributes. * sprint.adb: Handle quantified expression with either loop or iterator specification. * a-convec.ads, a-convec.adb: Iterate function returns a reversible iterator. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178235 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>charlet2011-08-291-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * exp_ch4.adb (Expand_Allocator_Expression): Add code to set attribute Finalize_Address of the access type's finalization master. (Expand_N_Allocator): Add code to set attribute Finalize_Address of the access type's finalization master. Add a guard to prevent Associated_Storage_Pool from being set on .NET/JVM. * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add code to set attribute Finalize_Address of the access type's finalization master. * exp_ch7.adb (Make_Finalize_Address_Call): New routine. * exp_ch7.ads (Make_Finalize_Address_Call): New routine. * rtsfind.ads: Add RE_Set_Finalize_Address to tables RE_Id and RE_Unit_Table. * s-finmas.adb: Add with clause for System.Address_Image. Add with and use clause for System.IO (Detach): Relax the assertion, to be reinstated later. (Finalize): Rewrite the iteration loop to avoid pointer comparison. Relax the assertion on Finalize_Address, to be reinstated later. (Is_Empty_List): New routine. (pm): New debug routine. (Set_Finalize_Address): New routine. * s-finmas.ads (pm): New debug routine. (Set_Finalize_Address): New routine. * s-stposu.adb (Allocate_Any_Controlled): Code reformatting. 2011-08-29 Tristan Gingold <gingold@adacore.com> * a-exexpr-gcc.adb (GCC_Exception_Access, GNAT_GCC_Exception_Access): Remove convention C. 2011-08-29 Tristan Gingold <gingold@adacore.com> * s-taprop-vms.adb (Get_Exc_Stack_Addr): Remove. (Initialize_TCB): Remove Exc_Stack_Ptr initialization. (Finalize_TCB): Remove its finalization. (Initialize): Remove assignment of GET_Exc_Stack_Addr * s-soflin.adb (NT_Exc_Stack): Remove (Get_Exc_Stack_Addr_NT): Likewise. (Get_Exc_Stack_Addr_Soft): Likewise. * s-soflin.ads (Get_Exc_Stack_Addr_NT): Remove. (Get_Exc_Stack_Addr): Likewise. (Get_Exc_Stack_Addr_Soft): Likewise * s-taspri-vms.ads (Exc_Stack_T): Remove. (Exc_Stack_Ptr_T): Likewise. (Private_Data): Remove Exc_Stack_Ptr component. 2011-08-29 Tristan Gingold <gingold@adacore.com> * raise-gcc.c (get_ip_from_context): New function. Factorize code. 2011-08-29 Tristan Gingold <gingold@adacore.com> * gnat_ugn.texi: Fix aix and x86-solaris info for run-time. 2011-08-29 Geert Bosch <bosch@adacore.com> * s-gearop.ads (Back_Substitute, Diagonal, Forward_Eliminate, L2_Norm, Swap_Column): New generic subprograms * s-gearop.adb (Back_Substitute, Diagonal, Forward_Eliminate, L2_Norm, Swap_Column): Implement new subprograms in order to eliminate dependency on BLAS and LAPACK libraries in Ada.Numerics.Generic_Real_Arrays and eventually also the complex version. Forward_Eliminate/Back_Substitute can be used to put a matrix in row echelon or reduced row echelon form using partial pivoting. * a-ngrear.adb: (Back_Substitute, Diagonal, Forward_Eleminate, Swap_Column): Instantiate from System.Generic_Array_Operations. ("*", "abs"): Implement by instantiation from Generic_Array_Operations. (Sqrt): Local function for simple computation of square root without adding dependencies on Generic_Elementary_Functions. (Swap): New subprogram to exchange floating point numbers. (Inverse): Reimplement using Jordan-Gauss elimination. (Jacobi): New procedure implementing Jacobi's method for computation of eigensystems, based on Rutishauser's implementation. (L2_Norm): Implement directly using the inner product. (Sort_Eigensystem): Sort eigenvalue/eigenvector pairs in order of decreasing eigenvalue as required by the Ada RM. (Swap_Column): New helper procedure for Sort_Eigensystem. Remove with of System.Generic_Real_BLAS and System.Generic_Real_LAPACK. Add with of Ada.Containers.Generic_Anonymous_Array_Sort, for Sort_Eigensystems. 2011-08-29 Thomas Quinot <quinot@adacore.com> * put_scos.adb (Put_SCOs): Do not emit a newline for an empty statements line. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178220 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>charlet2011-08-291-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * s-finmas.adb (Finalize): Check Finalize_Address of the master rather than the current node. * s-finmas.ads: Move field Finalize_Address from type FM_Node to Finalization_Master. The list headers have two fields instead of three. This should fix alignment issue but subpool allocations are now unusable. Alphabetize subprograms. * s-stposu.adb (Allocate_Any_Controlled): Use the offset rather than the size of the header when converting the beginning of the object to a FM_Node. Set the master's Finalize_Address attribute if not already set. (Deallocate_Any_Controlled): Use the offset rather than the size of the header when converting the beginning of the object to a FM_Node. 2011-08-29 Gary Dismukes <dismukes@adacore.com> * exp_ch11.adb (Expand_N_Raise_Statement): Don't suppress expansion of reraise when compiling for CodePeer. 2011-08-29 Arnaud Charlet <charlet@adacore.com> * a-iteint.ads, Makefile.rtl: Add missing compilation of a-iteint.ads, now needed by a-convec.adb. Fix warning. 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com> * exp_util.adb (Build_Allocate_Deallocate_Proc): Add a guard for the processing of TSS routine Finalize_Address when compiling in CodePeer_Mode. 2011-08-29 Thomas Quinot <quinot@adacore.com> * a-strunb.ads, einfo.ads, g-comlin.ads, sem_ch6.adb, sem_warn.adb: Minor reformatting. 2011-08-29 Emmanuel Briot <briot@adacore.com> * prj-conf.adb (Get_Config_Switches): Also collect the list of languages from aggregated projects. 2011-08-29 Yannick Moy <moy@adacore.com> * lib-xref-alfa.adb, lib-xref.ads (Traverse_Declarations_Or_Statements, Traverse_Handled_Statement_Sequence, Traverse_Package_Body, Traverse_Package_Declaration, Traverse_Subprogram_Body, Traverse_Compilation_Unit): Add a parameter Inside_Stubs so that bodies for stubs are traversed too when parameter is set (Traverse_All_Compilation_Units): Traverse without going inside stubs (Traverse_Declarations_Or_Statements): Do the special traversing for stubs when required. * sem_util.adb, sem_util.ads (Get_Body_From_Stub): New function to return subprogram or package body from stub. (Is_Subprogram_Stub_Without_Prior_Declaration): New function to detect stubs without prior subprogram decl. 2011-08-29 Vasiliy Fofanov <fofanov@adacore.com> * gnat_ugn.texi: Fix typo. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178219 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-08-29 Robert Dewar <dewar@adacore.com>charlet2011-08-291-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | * a-exexpr-gcc.adb, a-synbar.adb, sem_ch13.adb: Minor reformatting. 2011-08-29 Bob Duff <duff@adacore.com> * sem_aggr.adb (Resolve_Aggr_Expr): Call this routine even in the case of <>, because this is the routine that checks for dimensionality errors (for example, for a two-dimensional array, (others => <>) should be (others => (others => <>)). 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com> * impunit.adb: Add new run-time units. * freeze.adb, exp_ch7.ads, exp_ch7.adb, exp_util.ads, exp_util.adb, s-stposu.ads, s-stposu.adb: Code clean up. Handle protected class-wide or task class-wide types Handle C/C++/CIL/Java types. * s-spsufi.adb, s-spsufi.ads: New files. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178205 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>charlet2011-08-291-0/+135
* a-fihema.ads, a-fihema.adb: Unit removed. * a-undesu.ads, a-undesu.adb: New unit implementing Ada.Unchecked_Deallocate_Subpool. * einfo.adb: Remove Associated_Collection from the node usage. Add Finalization_Master to the node usage. (Associated_Collection): Removed. (Finalization_Master): New routine. (Set_Associated_Collection): Removed. (Set_Finalization_Master): New routine. (Write_Field23_Name): Remove Associated_Collection from the output. Add Finalization_Master to the output. * einfo.ads: Remove attribute Associated_Collection and its uses in entities. Add new attribute Finalization_Master along with its uses in entitites. (Associated_Collection): Removed along with its pragma import. (Finalization_Master): New routine along with a pragma import. (Set_Associated_Collection): Removed along with its pragma import. (Set_Finalization_Master): New routine along with a pragma import. * exp_ch3.adb (Expand_Freeze_Array_Type): Replace call to Build_Finalization_Collection with Build_Finalization_Master. (Expand_Freeze_Record_Type): Move the generation of Finalize_Address before the bodies of the predefined routines. Add comment explaining this. Replace call to Build_Finalization_Collection with Build_Finalization_Master. (Freeze_Type): Replace call to Build_Finalization_Collection with Build_Finalization_Master. (Make_Finalize_Address_Body): Comment reformatting. (Make_Predefined_Primitive_Specs): Code reformatting. (Stream_Operation_OK): Update comment mentioning finalization collections. Replace RE_Finalization_Collection with RE_Finalization_Master. * exp_ch4.adb (Complete_Controlled_Allocation): Replace call to Associated_Collection with Finalization_Master. Replace call to Build_Finalization_Collection with Build_Finalization_Master. (Expand_Allocator_Expression): Replace call to Associated_Collection with Finalization_Master. Replace call to Set_Associated_Collection with Set_Finalization_Master. Remove the generation of Set_Finalize_Address_Ptr. (Expand_N_Allocator): Replace call to Associated_Collection with Finalization_Master. Remove the generation of Set_Finalize_Address_Ptr. * exp_ch6.adb (Add_Collection_Actual_To_Build_In_Place_Call): Renamed to Add_Finalization_Master_Actual_To_Build_In_Place_Call. Update the comment on usage. Replace call to Needs_BIP_Collection with Needs_BIP_Finalization_Master Remplace BIP_Collection with BIP_Finalization_Master. Update all comments which mention finalization collections. Replace Associated_Collection with Finalization_Master. Replace Build_Finalization_Collection with Build_Finalization_Master. (BIP_Formal_Suffix): Update BIP_Collection's case. (Build_Heap_Allocator): Update the related comment. Rename local variable Collect to Fin_Mas_Id and update its occurrences. Update comments which mention finalization collections. Replace Set_Associated_Collection with Set_Finalization_Master. (Expand_Call): Update the code which detects a special piece of library code for .NET/JVM. (Make_Build_In_Place_Call_In_Allocator): Replace the call to Add_Collection_Actual_To_Build_In_Place_Call with Add_Finalization_Master_Actual_To_Build_In_Place_Call. Remove the code which generates a call to Make_Set_Finalize_Address_Ptr_Call. (Make_Build_In_Place_Call_In_Anonymous_Context): Replace call to Add_Collection_Actual_To_Build_In_Place_Call with Add_Finalization_Master_Actual_To_Build_In_Place_Call. (Make_Build_In_Place_Call_In_Assignment): Replace call to Add_Collection_Actual_To_Build_In_Place_Call with Add_Finalization_Master_Actual_To_Build_In_Place_Call. (Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master. * exp_ch6.ads: Rename BIP_Collection to BIP_Finalization_Master. (Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master. * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Update comment on usage. Rename local variable Collect to Fin_Mas_Id and update its occurrences. Replace call to Set_Associated_Collection with Set_Finalization_Master. (Build_Finalization_Collection): Renamed to Build_Finalization_Master. Replace the call to Associated_Collection with Finalization_Master. Rename local variable Coll_Id to Fin_Mas_Id and update its occurrences. Update the way finalization master names are generated. Update the retrieval of the correct access type which will carry the pool and master attributes. (Make_Final_Call): Reimplement the way [Deep_]Finalize is retrieved. (Make_Finalize_Address_Body): Abstract types do not need Finalize_Address. Code reformatting. (Make_Finalize_Address_Stmts): Update comment on usage. (Make_Set_Finalize_Address_Ptr_Call): Removed. (Process_Declarations): Update comments. * exp_ch7.ads (Build_Finalization_Collection): Renamed to Build_Finalization_Master. Update associated comment. (Make_Set_Finalize_Address_Ptr_Call): Removed. * exp_ch13.adb: Update comments which mention finalization collections. (Expand_N_Free_Statement): Replace the call to Associated_Collection with Finalization_Master. * exp_util.adb (Build_Allocate_Deallocate_Proc): Reimplemented to create calls to routines Allocate_Any_Controlled and Deallocate_Any_Controlled. (Find_Finalize_Address): New routine. (Is_Allocate_Deallocate_Proc): Update the RTE entities used in the comparison. (Requires_Cleanup_Actions): Update the comment on freeze node inspection. * exp_util.ads: Remove comment on generated code for Build_Allocate_Deallocate_Proc. The code is now quite complex and it is better to simply look in the body. * freeze.adb (Freeze_All): Update the comment of finalization collections. Replace the call to Associated_Collection with Finalization_Master. Replace the call to Build_Finalization_Collection with Build_Finalization_Master. * impunit.adb: Add a-undesu and s-stposu to the list of units. * Makefile.rtl: Add files a-undesu, s-finmas and s-stposu. Remove file a-fihema. * rtsfind.adb (Get_Unit_Name): Remove the processing for children of Ada.Finalization. Add processing for children of System.Storage_Pools. * rtsfind.ads: Remove the naming of second level children of Ada.Finalization. Remove Ada_Finalization_Heap_Management from the list of units. Remove subtype Ada_Finalization_Child. Remove the following subprogram entities: RE_Allocate RE_Deallocate RE_Finalization_Collection RE_Finalization_Collection_Ptr RE_Set_Finalize_Address_Ptr Add the naming of second level children of System.Storage_Pools. Add System_Finalization_Masters and System_Storage_Pools_Subpools to the list of units. Add subtype System_Storage_Pools_Child. Add the following subprogram entities to System.Finalization_Masters: RE_Finalization_Master RE_Finalization_Master_Ptr Add the following subprogram entities to System.Storage_Pools.Subpools: RE_Allocate_Any_Controlled RE_Deallocate_Any_Controlled RE_Root_Storage_Pool_With_Subpools RE_Root_Subpool RE_Subpool_Handle Move the following subprogram entities from Ada.Finalization.Heap_Management to System.Finalization_Masters: RE_Add_Offset_To_Address RE_Attach RE_Base_Pool RE_Detach * sem_ch3.adb (Access_Type_Declaration): Replace the call to Set_Associated_Collection with Set_Finalization_Master. * sem_ch6.adb (Create_Extra_Formals): Update the way extra formal BIP_Finalization_Master is created. * s-finmas.adb: New unit System.Finalization_Masters. * s-finmas.ads: New unit System.Finalization_Masters. * s-stopoo.ads, s-stopoo.adb: Minor code reformatting. * s-stposu.ads, s-stposu.adb: New unit implementing System.Storage_Pools.Subpools. 2011-08-29 Bob Duff <duff@adacore.com> * tbuild.adb: Add assertion. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178183 138bc75d-0d04-0410-961f-82ee72b054a4