Commit Graph

12 Commits

Author SHA1 Message Date
Arnaud Charlet 00c93ba2f2 [multiple changes]
2015-10-16  Eric Botcazou  <ebotcazou@adacore.com>

	* a-tags.ads (Parent_Size): Remove obsolete pragma Export.
	* s-finmas.ads (Header_Offset): Delete.
	* s-finmas.adb (Header_Offset): Likewise.
	(Finalize): Call Header_Size instead of Header_Offset.
	* s-stposu.adb (Allocate_Any_Controlled): Likewise.
	(Deallocate_Any_Controlled): Likewise.

2015-10-16  Arnaud Charlet  <charlet@adacore.com>

	* a-exetim.ads, a-exetim-mingw.ads, a-exetim-default.ads: Whitespace
	cleanup.
	* s-osprim-mingw.adb, einfo.ads, sem_util.adb, sem_util.ads,
	sem_ch4.adb, sem_ch13.adb, s-trasym.adb, s-trasym.ads,
	s-taprop-posix.adb: Minor reformatting.

From-SVN: r228895
2015-10-16 15:03:16 +02:00
Arnaud Charlet be482a8c83 [multiple changes]
2011-11-21  Robert Dewar  <dewar@adacore.com>

	* sinput.ads: Minor comment fix.

2011-11-21  Robert Dewar  <dewar@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference, case First_Bit,
	Last_Bit, Position): Handle 2005 case.

2011-11-21  Robert Dewar  <dewar@adacore.com>

	* s-atocou-builtin.adb (Decrement): Use Unrestricted_Access
	to deal with fact that we properly detect the error if Access
	is used.
	(Increment): Same fix.
	* s-taprop-linux.adb (Create_Task): Use Unrestricted_Access
	to deal with fact that we properly detect the error if Access
	is used.
	* sem_util.adb (Is_Volatile_Object): Properly record that A.B is
	volatile if the B component is volatile. This affects the check
	for passing such a by reference volatile actual to a non-volatile
	formal (which should be illegal)

2011-11-21  Robert Dewar  <dewar@adacore.com>

	* freeze.adb (Freeze_Enumeration_Type): Make sure to set both
	size and alignment for foreign convention enumeration types.
	* layout.adb (Set_Elem_Alignment): Redo setting of alignment
	when size is set.

2011-11-21  Yannick Moy  <moy@adacore.com>

	* checks.adb (Apply_Access_Check, Apply_Arithmetic_Overflow_Check,
	Apply_Discriminant_Check, Apply_Divide_Check,
	Apply_Selected_Length_Checks, Apply_Selected_Range_Checks,
	Build_Discriminant_Checks, Insert_Range_Checks, Selected_Length_Checks,
	Selected_Range_Checks): Replace reference to Expander_Active
	with reference to Full_Expander_Active, so that expansion of
	checks is not performed in Alfa mode

2011-11-21  Tristan Gingold  <gingold@adacore.com>

	* s-taprop-vms.adb (Create_Task): Use Unrestricted_Access to deal with
	fact that we properly detect the error if Access is used.

2011-11-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* par-ch4.adb (P_Quantified_Expression): Add an Ada 2012 check.

2011-11-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_imgv.adb: Add with and use clause for Errout.
	(Expand_Width_Attribute): Emit a warning when in
	configurable run-time mode to provide a better diagnostic message.

2011-11-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* s-finmas.adb (Finalize): Add comment concerning double finalization.

2011-11-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Access_Definition): If the access definition
	is itself the return type of an access to function definition
	which is ultimately the return type of an access to subprogram
	declaration, its scope is the enclosing scope of the ultimate
	access to subprogram.

2011-11-21  Steve Baird  <baird@adacore.com>

	* sem_res.adb (Valid_Conversion): If a conversion was legal
	in the body of a generic, then the corresponding conversion is
	legal in the expanded body of an instance of the generic.

From-SVN: r181568
2011-11-21 12:59:08 +01:00
Arnaud Charlet 86f0e17adc 2011-10-24 Sergey Rybin <rybin@adacore.com frybin>
* 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

From-SVN: r180368
2011-10-24 11:19:15 +02:00
Arnaud Charlet e42bcfa38c [multiple changes]
2011-09-05  Hristian Kirtchev  <kirtchev@adacore.com>

	* 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).

From-SVN: r178551
2011-09-05 16:30:30 +02:00
Arnaud Charlet 544e7c17b5 [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
2011-09-05 16:18:54 +02:00
Arnaud Charlet 1df4f514fa [multiple changes]
2011-08-29  Robert Dewar  <dewar@adacore.com>

	* impunit.adb, exp_ch4.adb, s-finmas.adb: Minor reformatting.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

	* exp_dist.adb (TC_Rec_Add_Process_Element): For a choice with multiple
	values, we generate multiple triples of parameters in the TypeCode.
	Bump Choice_Index for each such triple so that a subsequent default
	choice is associated with the correct index in the typecode.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

	* a-cdlili.adb (Iterate): Initialize properly an iterator over a null
	container.
	(First, Last): Handle properly an iterator over a null container.

2011-08-29  Bob Duff  <duff@adacore.com>

	* sem_ch10.adb (Analyze_With_Clause,Install_Withed_Unit): Abandon
	processing if we run across a node with no Scope. This can happen if
	we're with-ing an library-level instance, and that instance got errors
	that caused "instantiation abandoned".
	* sem_util.adb (Unit_Declaration_Node): Make it more robust, by raising
	an exception instead of using Assert, so it won't go into an infinite
	loop, even when assertions are turned off.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

	* a-coorse.adb: Proper handling of empty ordered sets.

From-SVN: r178249
2011-08-29 16:32:43 +02:00
Arnaud Charlet 14f0f659ac [multiple changes]
2011-08-29  Johannes Kanig  <kanig@adacore.com>

	* 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.

From-SVN: r178247
2011-08-29 16:29:25 +02:00
Arnaud Charlet 3a613a3621 [multiple changes]
2011-08-29  Ed Schonberg  <schonberg@adacore.com>

	* 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.

From-SVN: r178237
2011-08-29 16:07:24 +02:00
Arnaud Charlet 57a8057af4 [multiple changes]
2011-08-29  Yannick Moy  <moy@adacore.com>

	* 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.

From-SVN: r178235
2011-08-29 15:54:30 +02:00
Arnaud Charlet b254da66e7 [multiple changes]
2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

	* 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.

From-SVN: r178220
2011-08-29 15:07:49 +02:00
Arnaud Charlet 60370fb127 [multiple changes]
2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

	* 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.

From-SVN: r178219
2011-08-29 15:01:34 +02:00
Arnaud Charlet d3f70b35df [multiple changes]
2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

	* 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.

From-SVN: r178183
2011-08-29 11:52:57 +02:00