Commit Graph

111559 Commits

Author SHA1 Message Date
Paolo Carlini
ff15f019e0 re PR libstdc++/50118 (node-based containers cannot use allocators with explicit constructor template)
2011-08-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/50118
	* include/bits/stl_list.h (_List_base<>::
	_List_base(const allocator_type&)): Remove.
	(_List_base<>::_List_base(const _Node_alloc_type&)): Add.
	(list<>:list(const allocator_type&), list(size_type, const
	value_type&, const allocator_type&),
	list(initializer_list<, const allocator_type&),
	list(_InputIterator, _InputIterator, const allocator_type&),
	insert(iterator, size_type, const value_type&),
	insert(iterator, _InputIterator, _InputIterator)): Adjust.
	* include/bits/stl_tree.h (_Rb_tree<>::_Rb_tree(const _Compare&,
	const allocator_type&)): Fix.
	* include/bits/stl_map.h (map<>::map(const _Compare&,
 	const allocator_type&), map(initializer_list<>,
	const _Compare&, const allocator_type&), map(_InputIterator,
	_InputIterator, const _Compare&, const allocator_type&),
	get_allocator): Adjust.
	* include/bits/stl_set.h (set<>::set(const _Compare&,
 	const allocator_type&), set(initializer_list<>,
	const _Compare&, const allocator_type&), set(_InputIterator,
	_InputIterator, const _Compare&, const allocator_type&),
	get_allocator): Likewise.
	* include/bits/stl_multimap.h (multimap<>::multimap(const _Compare&,
 	const allocator_type&), multimap(initializer_list<>,
	const _Compare&, const allocator_type&), multimap(_InputIterator,
	_InputIterator, const _Compare&, const allocator_type&),
	get_allocator): Likewise.
	* include/bits/stl_multiset.h (multiset<>::multiset(const _Compare&,
 	const allocator_type&), multiset(initializer_list<>,
	const _Compare&, const allocator_type&), multiset(_InputIterator,
	_InputIterator, const _Compare&, const allocator_type&),
	get_allocator): Likewise.
	* include/bits/forward_list.h (_Fwd_list_base<>::
	_Fwd_list_base(const _Alloc&), _Fwd_list_base(const _Fwd_list_base&,
	const _Alloc&), _Fwd_list_base(_Fwd_list_base&&, const _Alloc&)):
	Remove.
	(_Fwd_list_base<>::_Fwd_list_base(const _Node_alloc_type&),
	_Fwd_list_base(const _Fwd_list_base&,
	const _Node_alloc_type&), _Fwd_list_base(_Fwd_list_base&&,
	const _Node_alloc_type&)): Add.
	(forward_list<>::forward_list(const _Alloc&),
	forward_list(const forward_list&, const _Alloc&),
	forward_list(forward_list&&, const _Alloc&),
	forward_list(size_type, const _Tp&, const _Alloc&),
	forward_list(_InputIterator, _InputIterator, const _Alloc&),
	forward_list(std::initializer_list<>, const _Alloc&),
	get_allocator): Adjust.
	* include/bits/forward_list.tcc
	* testsuite/util/testsuite_allocator.h (ExplicitConsAlloc): Add.
	* testsuite/23_containers/unordered_map/requirements/
	explicit_instantiation/5.cc: New.
	* testsuite/23_containers/multimap/requirements/
	explicit_instantiation/5.cc: Likewise.
	* testsuite/23_containers/multimap/requirements/
	explicit_instantiation/5_c++0x.cc: Likewise.
	* testsuite/23_containers/set/requirements/explicit_instantiation/
	5.cc: Likewise.
	* testsuite/23_containers/set/requirements/explicit_instantiation/
	5_c++0x.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/requirements/
	explicit_instantiation/5.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/
	explicit_instantiation/5.cc: Likewise.
	* testsuite/23_containers/unordered_set/requirements/
	explicit_instantiation/5.cc: Likewise.
	testsuite/23_containers/multiset/requirements/explicit_instantiation/
	5.cc: Likewise.
	* testsuite/23_containers/multiset/requirements/
	explicit_instantiation/5_c++0x.cc: Likewise.
	* testsuite/23_containers/list/requirements/explicit_instantiation/
	5_c++0x.cc: Likewise.
	* testsuite/23_containers/list/requirements/explicit_instantiation/
	5.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/requirements/
	explicit_instantiation/5.cc: Likewise.
	* testsuite/23_containers/map/requirements/explicit_instantiation/
	5.cc: Likewise.
	* testsuite/23_containers/map/requirements/explicit_instantiation/
	5_c++0x.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/dr438/
	assign_neg.cc: Adjust dg-error line number.
	* testsuite/23_containers/forward_list/requirements/dr438/
	insert_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_2_neg.cc: Likewise.

From-SVN: r178230
2011-08-29 13:40:33 +00:00
Thomas Quinot
9f0ee9886a system-freebsd-x86_64.ads (Backend_Overflow_Checks): Set true True.
2011-08-29  Thomas Quinot  <quinot@adacore.com>

	* system-freebsd-x86_64.ads (Backend_Overflow_Checks): Set true True.
	Remove unused variables.

From-SVN: r178229
2011-08-29 15:40:26 +02:00
Arnaud Charlet
3e24afaa6a [multiple changes]
2011-08-29  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb: Remove Build_Explicit_Dereference.
	* sem_util.adb, sem_util.ads (Build_Explicit_Dereference): Moved here
	from sem_res.adb, used in analysis of additional constructs.
	(Is_Iterator, Is_Reversible_Iterator): New predicates for Ada2012
	expansion of iterators.
	(Is_Object_Reference): Recognize variables rewritten as explicit
	dereferences in Ada2012.
	* snames.ads-tmpl: Add Has_Element, Forward_Iterator,
	Reversible_Iterator names, for expansion of Ada2012 iterators.
	* aspects.ads, aspects.adb (Find_Aspect): Utility.
	* a-cdlili.ads, a-cdlili.adb: Add new iterator machinery to doubly
	linked list container.
	* a-coinve.ads, a-coinve.adb: Ditto for indefinite vector containers.
	* a-coorse.ads, a-coorse.adb: Ditto for ordered sets.

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

	* a-cohama.adb, a-cohama.ads: Add iterator primitives to hashed map
	containers.

2011-08-29  Vincent Celier  <celier@adacore.com>

	* make.adb (Gnatmake): Get the maximum number of simultaneous
	compilation processes after the Builder switches has been scanned, as
	there may include -jnn.

2011-08-29  Matthew Heaney  <heaney@adacore.com>

	* a-chtgbo.adb (Generic_Equal): Use correct overloading of Next.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

	* gnatcmd.adb (GNATCmd): On OpenVMS, truncate the length of
	GNAT_DRIVER_COMMAND_LINE to 255.

2011-08-29  Pascal Obry  <obry@adacore.com>

	* freeze.adb, sem_ch8.adb, a-convec.adb, a-convec.ads: Minor
	reformatting and style fix (class attribute casing).

2011-08-29  Yannick Moy  <moy@adacore.com>

	* exp_ch11.adb: Yet another case where expansion should be common
	between CodePeer and Alfa.

2011-08-29  Yannick Moy  <moy@adacore.com>

	* exp_ch9.adb: Partial revert of previous change for Alfa mode.

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

	* sem_ch6.adb (Matches_Limited_With_View): The limited views of an
	incomplete type and its completion match.

From-SVN: r178228
2011-08-29 15:38:55 +02:00
Arnaud Charlet
3ddd922ebf [multiple changes]
2011-08-29  Yannick Moy  <moy@adacore.com>

	* exp_ch13.adb: Adjust previous change.

2011-08-29  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb, prj.adb, sem_util.adb, sem_res.adb, gnat1drv.adb,
	exp_ch4.adb, sem_ch8.adb: Minor code reorganization
	Minor reformatting.

From-SVN: r178226
2011-08-29 15:33:32 +02:00
Arnaud Charlet
444acbddf8 [multiple changes]
2011-08-29  Emmanuel Briot  <briot@adacore.com>

	* make.adb, prj.adb, prj.ads (Compute_All_Imported_Projects): Also
	initialize aggregated projects.

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

	* sem_ch8.adb (Find_Renamed_Entity): Within an instance, use scope
	depth of candidates to resolve a potentially spurious ambiguity between
	two visible subprograms.

From-SVN: r178225
2011-08-29 15:31:02 +02:00
Arnaud Charlet
e02965831e [multiple changes]
2011-08-29  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Allow Test_Case pragma without
	Requires/Ensures.
	* sem_util.adb (Get_Ensures_From_Test_Case_Pragma,
	Get_Requires_From_Test_Case_Pragma): Allow Test_Case pragma without
	Requires/Ensures.

2011-08-29  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Improve previous change.
	Add comment.

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

	* sem_res.adb: Minor reformatting.

From-SVN: r178224
2011-08-29 15:27:37 +02:00
Johannes Kanig
69794413ec exp_ch4.adb (Expand_Quantified_Expression): Do not expand in ALFA mode.
2011-08-29  Johannes Kanig  <kanig@adacore.com>

	* exp_ch4.adb (Expand_Quantified_Expression): Do not expand in ALFA
	mode.
	* gnat1drv.adb (Adjust_Global_Switches): Set
	Use_Expressions_With_Actions to False in ALFA mode.
	* sem_res.adb (Resolve_Quantified_Expression): Simpler treatment in
	ALFA mode.

From-SVN: r178223
2011-08-29 15:26:02 +02:00
Arnaud Charlet
59e6b23c68 [multiple changes]
2011-08-29  Yannick Moy  <moy@adacore.com>

	* exp_ch13.adb (Expand_N_Freeze_Entity): Do nothing in Alfa mode.
	* exp_ch9.adb: Do not expand tasking constructs in Alfa mode.
	* gnat1drv.adb (Adjust_Global_Switches): Suppress the expansion of
	tagged types and dispatching calls in Alfa mode.

2011-08-29  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Process_Discriminants): Add missing check to ensure that
	we do not report an error on an Empty node.

2011-08-29  Geert Bosch  <bosch@adacore.com>

	* Makefile.rtl (GNATRTL_NONTASKING_OBJECTS): Add a-nllrar.o,
	a-nlrear.o and a-nurear.o.

2011-08-29  Robert Dewar  <dewar@adacore.com>

	* freeze.adb: Minor code reorganization.
	Minor reformatting.
	* sem_util.adb, errout.adb, exp_ch11.adb, a-ngrear.adb, s-gearop.adb,
	sem_ch6.adb: Minor reformatting

2011-08-29  Tristan Gingold  <gingold@adacore.com>

	* s-except.ads, s-except.adb: Provide dummy body.

2011-08-29  Yannick Moy  <moy@adacore.com>

	* sem_warn.adb (Within_Postcondition): Take into account the case of
	an Ensures component in a Test_Case.

From-SVN: r178222
2011-08-29 15:21:45 +02:00
Arnaud Charlet
4d79254934 [multiple changes]
2011-08-29  Tristan Gingold  <gingold@adacore.com>

	* s-excdeb.ads, s-excdeb.adb: New files, created from s-except.
	* rtsfind.ads (RTU_Id): Replaces System_Exceptions by
	System_Exceptions_Debug
	(RE_Unit_Table): Search RE_Local_Raise in System_Exceptions_Debug
	* a-except.adb: With and use System.Exceptions_Debug instead of
	System.Exceptions.
	* a-except-2005.adb: Likewise.
	* s-assert.adb: Likewise.
	* s-except.adb, s-except.ads: Move debugging hooks to s-excdeb.
	* Makefile.rtl: Add s-excdeb.  Adjust compilation rule.
	* gcc-interfaces/Makefile.in, gcc-interface/Make-lang.in: Add
	s-excdeb. Update dependencies.
	(GNATRTL_LINEARALGEBRA_OBJS): Remove a-nlrear.o a-nurear.o a-nllrar.o
	as these no longer need external libraries.

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

	* sem_res.adb (Resolve_Op_Expon): Additional check to reject an
	exponentiation operator on universal values in a context that requires
	a fixed-point type.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

	* raise-gcc.c (personnality_routine): Fix thinko.  Set Ada occurrence
	before calling notify_handled_exception.
	* a-exextr.adb: Fix comment.

From-SVN: r178221
2011-08-29 15:13:26 +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
Hristian Kirtchev
e9c9d12236 s-stposu.adb (Allocate_Any_Controlled): Reimplement the mechanism which accounts for size vs alignment issues and...
2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

	* s-stposu.adb (Allocate_Any_Controlled): Reimplement the mechanism
	which accounts for size vs alignment issues and calculates the size of
	the list header.
	(Deallocate_Any_Controlled): Ditto.
	(Nearest_Multiple_Rounded_Up): New routine.

From-SVN: r178218
2011-08-29 14:56:22 +02:00
Rainer Orth
09fae88db5 Handle different versions of Solaris 8 <iso/math_iso.h>, <iso/stdlib_iso.h>
* acinclude.m4 (GLIBCXX_CHECK_MATH_PROTO)
	(GLIBCXX_CHECK_STDLIB_PROTO): New tests.
	* configure.ac (GLIBCXX_CHECK_MATH_PROTO)
	(GLIBCXX_CHECK_STDLIB_PROTO): Call them.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* config/os/solaris/solaris2.8/os_defines.h
	(__CORRECT_ISO_CPP_MATH_H_PROTO2): Don't define.
	* config/os/solaris/solaris2.9: Remove.
	* configure.host (solaris2.8): Merge with ...
	(solaris2.9, solaris2.1[0-9]): ... this.
	Always use os/solaris/solaris2.8.

From-SVN: r178217
2011-08-29 12:54:55 +00:00
Arnaud Charlet
25ebc08558 [multiple changes]
2011-08-29  Tristan Gingold  <gingold@adacore.com>

	* a-exstat.adb (String_To_EO): Do no set Cleanup_Flag.
	* a-exexda.adb (Set_Exception_C_Msg): Ditto.
	(Set_Exception_Msg): Ditto.
	* a-exexpr-gcc.adb (Setup_Current_Excep): Ditto.  Do not set
	Private_Data.
	* a-except.adb, a-except-2005.adb (Save_Occurrence_No_Private): Remove.
	Use Save_Occurrence instead of Save_Occurrence_No_Private.
	(Raise_With_Msg): Remove Cleanup_Flag.
	* a-except.ads, a-except-2005.ads (Exception_Occurrence): Remove
	Clean_Flag and Private_Data components.

2011-08-29  Yannick Moy  <moy@adacore.com>

	* freeze.adb (Freeze_Record_Type): Ignore packing in Alfa mode, like
	in CodePeer mode.
	* sem_ch3.adb (Signed_Integer_Type_Declaration): Correct the generation
	of an explicitly declared type, so that the base types of the original
	type and this generated type are the same, and a "type" (not a subtype
	like previously).
	* errout.adb (Special_Msg_Delete): Do not issue messages "Size too
	small" in Alfa mode, like in CodePeer mode.
	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore rep
	clauses in Alfa mode.

2011-08-29  Javier Miranda  <miranda@adacore.com>

	* exp_ch6.ads, exp_ch6.adb (Is_Null_Procedure): Move the spec of this
	function to the package spec.
	* sem_ch6.adb (Find_Corresponding_Spec, New_Overloaded_Entity): For
	internally generated bodies of null procedures locate the internally
	generated spec enforcing mode conformance.
	(Is_Interface_Conformant): Ensure that the controlling formal of the
	primitives match.

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

	* sem_prag.adb (Analyze_Pragma, case Inline): In an instance, do not
	reject the pragma if it appears to apply to a formal subprogram.

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

	* exp_ch4.adb (Expand_Allocator_Expression): Use consistent name for
	inner expression, to prevent double evaluation.

From-SVN: r178216
2011-08-29 14:52:57 +02:00
Arnaud Charlet
590549fbed [multiple changes]
2011-08-29  Tristan Gingold  <gingold@adacore.com>

	* a-exexpr.adb (Propagate_Exception): Remove all the parameters as
	they were unused.
	* a-exexpr-gcc.adb (Propagate_Exception): Ditto.
	* a-except-2005.adb (Propagate_Exception): Adjust spec.
	(Raise_Current_Excep): Adjust call.
	(Raise_From_Signal_Handler): Call now simply call Raise_Current_Excep.

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

	* exp_disp.adb: Minor reformatting.

From-SVN: r178215
2011-08-29 14:48:33 +02:00
Tristan Gingold
62380e66a5 a-exexpr.adb (Setup_Exception): Removed.
2011-08-29  Tristan Gingold  <gingold@adacore.com>

	* a-exexpr.adb (Setup_Exception): Removed.
	* a-exexpr-gcc.adb (Setup_Exception): Removed.
	* a-except.adb (Exception_Propagation): Removed.
	* a-except-2005.adb (Setup_Exception): Removed.
	(Reraise): Remove call to Setup_Exception.
	(Reraise_Occurrence): Ditto.
	(Reraise_Occurrence_Always): Ditto.
	(Reraise_Occurrence_No_Defer): Ditto.
	(Transfer_Occurrence): Ditto.
	* a-exexda.adb (Set_Exception_C_Msg): Remove call to Setup_Exception.
	(Set_Exception_Msg): Ditto.

From-SVN: r178214
2011-08-29 14:41:02 +02:00
Arnaud Charlet
c95aa61c54 [multiple changes]
2011-08-29  Robert Dewar  <dewar@adacore.com>

	* a-convec.adb, exp_disp.adb: Minor reformatting.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

	* a-exexpr-gcc.adb (GNAT_GCC_Exception_Access): Set to convention C.

From-SVN: r178213
2011-08-29 14:38:27 +02:00
Arnaud Charlet
624e168838 [multiple changes]
2011-08-29  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch3.adb (Build_Record_Init_Proc.Build_Init_Procedure): Set
	Exception_Handlers to No_List instead of Empty_List in the case where
	there are no handlers.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

	* gcc-interface/gigi.h (enum standard_datatypes): Add
	ADT_reraise_zcx_decl
	(reraise_zcx_decl): New macro.
	* gcc-interface/trans.c (gnu_incoming_exc_ptr): New variable.
	(gigi): Set reraise_zcx_decl.
	(Exception_Handler_to_gnu_zcx): Save and restore gnu_incoming_exc_ptr.
	(gnat_to_gnu): Handle N_Raise_Statement.

From-SVN: r178212
2011-08-29 14:36:42 +02:00
Arnaud Charlet
7134062aa9 [multiple changes]
2011-08-29  Robert Dewar  <dewar@adacore.com>

	* sem_ch6.adb, exp_ch3.adb, s-stposu.adb, a-undesu.ads,
	a-undesu.adb: Minor reformatting.

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

	* exp_disp.adb (Check_Premature_Freezing): When building a dispatch
	table, accept an unfrozen untagged component if it is an actual for a
	formal incomplete type.
	* a-convec.ads, a-convec.adb: Instantiate Ada.Iterator_Interfaces to
	provide new iterator forms over vectors.
	Introduce type Iterator in package body to implement operations of
	Reversible_Iterator interface.
	* a-iteint.ads: Make package pure so it is usable with new container
	packages, that are categorized Remote_Types.

From-SVN: r178211
2011-08-29 14:21:49 +02:00
Artjoms Sinkarovs
544d960a12 20011-08-29 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
Richard Guenther  <rguenther@suse.de>

	* tree.h (constant_boolean_node): Adjust prototype.
	* fold-const.c (fold_convert_loc): Move aggregate conversion
	leeway down.
	(constant_boolean_node): Make value parameter boolean, add
	vector type handling.
	(fold_unary_loc): Use constant_boolean_node.
	(fold_binary_loc): Preserve types properly when folding
	COMPLEX_EXPR <__real x, __imag x>.
	* gimplify.c (gimplify_expr): Handle vector comparison.
	* tree.def (EQ_EXPR, ...): Document behavior on vector typed
	comparison.
	* tree-cfg.c (verify_gimple_comparison): Verify vector typed
	comparisons.

From-SVN: r178209
2011-08-29 11:55:45 +00:00
Jakub Jelinek
776bebcdb0 re PR middle-end/48722 (ICE in df_refs_verify() with -mno-push-args)
PR middle-end/48722
	* emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
	reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
	(verify_rtl_sharing): Likewise and verify_rtx_sharing
	in there too.
	(unshare_all_rtl_in_chain): For CALL_INSNs
	copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.

	* gcc.target/i386/pr48722.c: New test.

From-SVN: r178208
2011-08-29 13:52:22 +02:00
Arnaud Charlet
8934a5840e Code clean up.
From-SVN: r178206
2011-08-29 13:12:58 +02:00
Arnaud Charlet
ca5af305a1 [multiple changes]
2011-08-29  Robert Dewar  <dewar@adacore.com>

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

From-SVN: r178205
2011-08-29 13:12:17 +02:00
Arnaud Charlet
5accd7b6ca [multiple changes]
2011-08-29  Yannick Moy  <moy@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications): Reject test-case on
	library-level subprogram.
	* sem_prag.adb (Check_Test_Case): Stricter rules for test-case
	placement.
	(Analyze_Pragma): Change name "Normal" for "Nominal" in test-case
	component.
	* snames.ads-tmpl: Change name "Normal" for "Nominal" in test-case
	component.
	* gnat_rm.texi: Update doc for Test_Case pragma.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

	* a-exexpr-gcc.adb (Unwind_Exception): Remove default value, made it
	convention C.
	(GCC_Exception_Access): New type.
	(Unwind_DeleteException): New imported procedure
	(Foreign_Exception): Import it.
	(GNAT_GCC_Exception): Simply have the occurrence inside.
	(To_GCC_Exception): New function.
	(To_GNAT_GCC_Exception): New function.
	(GNAT_GCC_Exception_Cleanup): New procedure..
	(Propagate_GCC_Exception): New procedure.
	(Reraise_GCC_Exception): New procedure.
	(Setup_Current_Excep): New procedure.
	(CleanupUnwind_Handler): Change type of UW_Exception parameter.
	(Unwind_RaiseException): Ditto.
	(Unwind_ForcedUnwind): Ditto.
	(Remove): Removed.
	(Begin_Handler): Change type of parameter.
	(End_Handler): Ditto. Now delete the exception if still present.
	(Setup_Key): Removed.
	(Is_Setup_And_Not_Propagated): Removed.
	(Set_Setup_And_Not_Propagated): Ditto.
	(Clear_Setup_And_Not_Propagated): Ditto.
	(Save_Occurrence_And_Private): Ditto.
	(EID_For): Add 'not null' constraint on parameter.
	(Setup_Exception): Does nothing.
	(Propagate_Exception): Simplified.
	* exp_ch11.adb (Expand_N_Raise_Statement): In back-end exception model,
	re-raise is not expanded anymore.
	* s-except.ads (Foreign_Exception): New exception - placeholder for
	non Ada exceptions.
	* raise-gcc.c (__gnat_setup_current_excep): Declare
	(CXX_EXCEPTION_CLASS): Define (not yet used)
	(GNAT_EXCEPTION_CLASS): Define.
	(is_handled_by): Handle foreign exceptions.
	(PERSONALITY_FUNCTION): Call __gnat_setup_current_excep.

2011-08-29  Jose Ruiz  <ruiz@adacore.com>

	* a-synbar.adb (Synchronous_Barrier): Some additional clarification.

From-SVN: r178204
2011-08-29 13:06:09 +02:00
Arnaud Charlet
2ef48385c2 [multiple changes]
2011-08-29  Thomas Quinot  <quinot@adacore.com>

	* a-synbar-posix.adb: Minor reformatting.

2011-08-29  Jose Ruiz  <ruiz@adacore.com>

	* a-exetim-posix.adb, a-exetim-mingw.adb, a-exetim-mingw.ads,
	a-exetim-default.ads (Interrupt_Clocks_Supported,
	Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add these
	definitions to be compliant with AI-0171. The target systems do not
	support separate account for the execution time of interrupt handlers.

2011-08-29  Jose Ruiz  <ruiz@adacore.com>

	* a-synbar.adb (Wait): Change the order of evaluation of the conditions
	in the barrier to put first the easiest to evaluate (and the one which
	will be True more often). More efficient.

2011-08-29  Eric Botcazou  <ebotcazou@adacore.com>

	* s-atocou-x86.adb: Fix constraint in machine code insertion.

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

	* aspects.ads, aspects.adb: Add new aspects for various pragmas and
	attributes that are now aspects, as specified by AI05-0229-1.
	* sem_ch13.adb (Analyze_Aspect_Specifications,
	Check_Aspect_At_Freeze_Point): Analyze the new aspects. Turn them into
	pragmas or attribute references, as appropriate.

From-SVN: r178203
2011-08-29 13:04:03 +02:00
Arnaud Charlet
0db16b1e6b [multiple changes]
2011-08-29  Robert Dewar  <dewar@adacore.com>

	* a-synbar.ads, a-synbar.adb, a-synbar-posix.adb,
	a-synbar-posix.ads: Minor reformatting.

2011-08-29  Yannick Moy  <moy@adacore.com>

	* snames.ads-tmpl: Add name Force.

From-SVN: r178202
2011-08-29 13:01:53 +02:00
Arnaud Charlet
978ffe02af [multiple changes]
2011-08-29  Pascal Obry  <obry@adacore.com>

	* prj-nmsc.adb: Minor reformatting.

2011-08-29  Jose Ruiz  <ruiz@adacore.com>

	* a-exetim.ads (Interrupt_Clocks_Supported,
	Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add these
	definitions to be compliant with AI-0171.

2011-08-29  Robert Dewar  <dewar@adacore.com>

	* a-ngelfu.adb: Add comments.

From-SVN: r178201
2011-08-29 13:00:17 +02:00
Arnaud Charlet
718f39dcc1 [multiple changes]
2011-08-29  Tristan Gingold  <gingold@adacore.com>

	* s-interr-hwint.adb: Revert previous patch (defer aborts in ZCX case).

2011-08-29  Geert Bosch  <bosch@adacore.com>

	* a-ngelfu.adb (Tan): Do not raise Constraint_Error if the argument is
	the closest machine number to Pi / 2.0.

2011-08-29  Jose Ruiz  <ruiz@adacore.com>

	* impunit.adb (Non_Imp_File_Names_12): Add a-synbar for new Ada 2012
	package Ada.Synchronous_Barriers.
	* a-synbar.ads, a-synbar.adb, a-synbar-posix.ads, a-synbar-posix.adb:
	Add new specs and bodies for Ada.Synchronous_Barriers. There is a
	default implementation using protected objects and another one
	a-synbar-posix using POSIX barriers as the underlying support.
	* gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for Linux (x86,
	x86_64, ia64) and MIPS IRIX): Use the a-synbar-posix implementation of
	Ada.Synchronous_Barriers which uses POSIX barriers (more efficient).
	* Makefile.rtl (GNATRTL_TASKING_OBJS): Add a-synbar.o

From-SVN: r178200
2011-08-29 12:58:32 +02:00
Arnaud Charlet
ee2e3f6bb4 [multiple changes]
2011-08-29  Robert Dewar  <dewar@adacore.com>

	* sem_ch7.adb, make.adb, sem_res.adb, exp_intr.adb,
	exp_dist.adb: Minor code reorganization.
	Minor reformatting.

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

	* sem_cat.adb (Validate_RACW_Primitive): The return type of an RACW
	primitive operation must support external streaming if it is not a
	controlling access result.

From-SVN: r178199
2011-08-29 12:46:57 +02:00
Arnaud Charlet
646e282313 [multiple changes]
2011-08-29  Thomas Quinot  <quinot@adacore.com>

	* sinfo.ads, sem_ch7.adb: Minor reformatting.

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

	* sem_ch4.adb (Analyze_Allocator): Check No_Nested_Finalization
	restriction on allocators, as required by AI05-0013-1.
	* restrict.ads: Minor comment fix.

From-SVN: r178198
2011-08-29 12:44:14 +02:00
Arnaud Charlet
5d59eef269 [multiple changes]
2011-08-29  Tristan Gingold  <gingold@adacore.com>

	* a-exexpr.adb, a-except-2005.ads (Jmpbuf_Address): Move to a-exexpr.adb
	(To_Jmpbuf_Address): Ditto
	(builtin_longjmp): Ditto

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

	* sem_res.adb: Minor reformatting.

2011-08-29  Vincent Celier  <celier@adacore.com>

	* make.adb (Gnatmake): Move special processing for VM targets after the
	call to Get_Target_Parameters.

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

	* sem_ch12.adb, par-ch12.adb: Minor reformatting.

From-SVN: r178197
2011-08-29 12:42:45 +02:00
Arnaud Charlet
949a18ccb2 [multiple changes]
2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_res.adb (Resolve_Allocator): Implement Ada2012-B052. Detect cases
	where an anonymous access discriminant of a limited designated type
	appears in a non-immutably limited discriminated type and issue an
	error message. Add local variable Desig_T and replace all occurrences
	of Designated_Type.

2011-08-29  Jose Ruiz  <ruiz@adacore.com>

	* a-rttiev.adb (Set_Handler): Update comment to indicate that our
	implementation is compliant to RM D.15(15/2) after the modification
	imposed by AI05-0094-1 (binding interpretation).

From-SVN: r178196
2011-08-29 12:40:08 +02:00
Arnaud Charlet
cb25faf861 [multiple changes]
2011-08-29  Robert Dewar  <dewar@adacore.com>

	* exp_ch9.adb, s-tasren.adb, exp_sel.adb, exp_sel.ads, exp_ch11.adb,
	s-interr-hwint.adb, s-tpobop.adb, sem_ch13.adb: Minor reformatting.

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

	* par-endh.adb (Check_End): For an END where it is mandatory to repeat
	the scope name, do not report a missing label as a style violation (it
	will be diagnosed as an illegality).
	* exp_dist.adb (Add_Params_For_Variant_Components): Fix handling of
	variant records: Get_Enum_Lit_From_Pos already returns a usage
	occurrence of the literal, no need to use New_Occurrence_Of. Set Etype
	on Expr in Integer_Literal case so that it can be used by
	Build_To_Any_Call.

From-SVN: r178195
2011-08-29 12:36:46 +02:00
Arnaud Charlet
1d10f669bc [multiple changes]
2011-08-29  Tristan Gingold  <gingold@adacore.com>

	* exp_sel.ads (Build_Abort_BLock_Handler): New function spec.
	Adjust comment.
	* exp_sel.adb (Build_Abort_Block): Use Build_Abort_Block_Handler.
	(Build_Abort_Block_Handler): New function to build an Abort_Signal
	exception handler.
	* exp_ch9.adb (Expand_N_Asynchronous_Select): Call
	Build_Abort_Block_Handler to build the exception handler. Do not
	undefer aborts for the Abort_Signal exception handler if back-end
	exception mechanism.
	* exp_ch11.adb (Expand_Exception_Handlers): Do not undefer aborts if
	back_end exceptions for all others and abort_signal.
	* s-except.ads (ZCX_By_Default): New constant.
	* a-except-2005.adb (Raise_Exception): Do not defer abort if ZCX.
	(Raise_Exception_Always): Ditto.
	(Raise_From_Signal_Handler): Ditto.
	(Raise_With_Location_And_Msg): Ditto.
	(Raise_With_Msg): Ditto.
	(Reraise): Ditto.
	(Reraise_Occurence): Ditto.
	(Reraise_Occurrence_Always): Ditto.
	* s-tasren.adb (Exceptional_Complete_Rendezvous): Defer aborts if ZCX.
	* s-tpobop.adb: (Exceptional_Complete_Body): Undefer abort if ZCX.
	* s-interr-hwint.adb (Interrupt_Manager): Defer abort if ZCX.

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

	* sem_util.ads (Get_Enum_Lit_From_Pos): Clarify documentation.

From-SVN: r178194
2011-08-29 12:34:32 +02:00
Tobias Burnus
86187d0fe0 trans-decl.c (generate_coarray_sym_init): Use GFC_CAF_COARRAY_STATIC for static coarrays.
gcc/fortran/
2011-08-29  Tobias Burnus  <burnus@net-b.de>

        * trans-decl.c (generate_coarray_sym_init): Use
        GFC_CAF_COARRAY_STATIC for static coarrays.

libgfortan/
2011-08-29  Tobias Burnus  <burnus@net-b.de>

        * caf/libcaf.h (_gfortran_caf_deregister): Update prototype.
        * caf/mpi.c (_gfortran_caf_deregister): Modify prototype,
        actually free memory and add error diagnostic.
        (_gfortran_caf_finalize): Add additional free calls.
        * caf/single.c (_gfortran_caf_deregister): Modify prototype,
        actually free memory and add error diagnostic.
        (_gfortran_caf_finalize): Add additional free calls.

From-SVN: r178193
2011-08-29 12:33:09 +02:00
Arnaud Charlet
d986066d17 [multiple changes]
2011-08-29  Robert Dewar  <dewar@adacore.com>

	* snames.adb-tmpl, sem_ch13.adb: Minor reformatting
	Minor code reorganization.

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

	* usage.adb (-gnatwy): Fix documentation: this switch applies to Ada
	2012, not just Ada 2005.

2011-08-29  Vincent Celier  <celier@adacore.com>

	* gnat_ugn.texi: Indicate that when the compiler is called by gnatmake
	with a project file or with gprbuid, if -gnatep= is specified, the
	builder may need to be invoked with -x.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

	* a-exexpr-gcc.adb: Minor comment fix.

From-SVN: r178192
2011-08-29 12:32:18 +02:00
Arnaud Charlet
ff4f0ed093 [multiple changes]
2011-08-29  Robert Dewar  <dewar@adacore.com>

	* sem_ch8.adb: Minor reformatting.

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

	* par-ch2.adb (P_Identifier): Warn that "some" is reserved in Ada 2012.
	* par-ch4.adb (P_Quantified_Expression): Remove unnecessary code for
	treating "some" as unreserved in earlier Ada versions. This is now
	handled in Snames.Is_Keyword_Name. Parse "for some" using Tok_Some,
	rather than Name_Some, since Tok_Some is now recognized as reserved.
	* scans.adb (Initialize_Ada_Keywords): Handle Tok_Some like any other
	reserved word.
	* scans.ads: Minor comment fixes.
	* snames.adb-tmpl (Is_Keyword_Name): Handle Ada 2012 reserved words as
	for other language versions.
	* scn.adb (Scan_Reserved_Identifier): Remove unnecessary code for
	treating "some" as unreserved in earlier Ada versions. This is now
	handled in Snames.Is_Keyword_Name.
	* par-ch3.adb (P_Defining_Identifier): Warn that "some" is reserved in
	Ada 2012.
	(P_Subtype_Mark_Resync): Remove unnecessary code for treating "some" as
	unreserved in earlier Ada versions. This is now handled in
	Snames.Is_Keyword_Name.
	* snames.ads-tmpl (Ada_2012_Reserved_Words): Handle Ada 2012 reserved
	words as for other language versions.
	* gnat_ugn.texi (-gnatwy): Fix documentation: this switch applies to
	Ada 2012, not just Ada 2005.

From-SVN: r178191
2011-08-29 12:29:09 +02:00
Arnaud Charlet
d941cee6ff [multiple changes]
2011-08-29  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb: Additional semantic checks for aspects involved in
	iterators.

2011-08-29  Matthew Heaney  <heaney@adacore.com>

	* a-comutr.ads, a-comutr.adb, a-cimutr.ads, a-cimutr.adb,
	a-cbmutr.ads, a-cbmutr.adb (Find_In_Subtree): Remove superfluous
	Container parameter.
	(Ancestor_Find): ditto.

2011-08-29  Robert Dewar  <dewar@adacore.com>

	* par-endh.adb: Minor reformatting.

From-SVN: r178190
2011-08-29 12:25:10 +02:00
Thomas Quinot
b970af3992 par-endh.adb: Minor reformatting.
2011-08-29  Thomas Quinot  <quinot@adacore.com>

	* par-endh.adb: Minor reformatting.

From-SVN: r178189
2011-08-29 12:22:44 +02:00
Arnaud Charlet
92db5dee00 [multiple changes]
2011-08-29  Tristan Gingold  <gingold@adacore.com>

	* a-exexpr-gcc.adb (Unwind_Action) Rewrite as an integer with constants.
	(GNAT_GCC_Exception): Remove N_Cleanups_To_Trigger component.
	(Adjust_N_CLeanups_For): Remove.
	(CleanupUnwind_Handler): Call Unhandled_Exception_Terminate when end of
	stack is reached.
	(Propgate_Exception): Adjust.
	* raise-gcc.c: Add a few static/const.
	(Adjust_N_Cleanups_For): Remove declaration.
	(PERSONALITY_FUNCTION): Remove code dealing with N_Cleanups_To_Trigger.

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

	* sem_ch8.adb: Use type of function return when rewriting as object
	declaration.

From-SVN: r178188
2011-08-29 12:20:48 +02:00
Arnaud Charlet
1378bf105e [multiple changes]
2011-08-29  Gary Dismukes  <dismukes@adacore.com>

	* sem_type.adb: Minor reformatting.

2011-08-29  Robert Dewar  <dewar@adacore.com>

	* makeutl.adb: Minor reformatting.

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

	* sem_ch8.adb (Analyze_Object_Renaming): If the renamed object is a
	function call of a limited type, the expansion of the renaming is
	complicated by the presence of various temporaries and subtypes that
	capture constraints of the renamed object.
	Rewrite node as an object declaration, whose expansion is simpler.
	Given that the object is limited there is no copy involved and no
	performance hit.

From-SVN: r178187
2011-08-29 12:19:00 +02:00
Arnaud Charlet
164e06c6c1 [multiple changes]
2011-08-29  Robert Dewar  <dewar@adacore.com>

	* exp_ch5.adb, sinfo.ads, make.adb, s-pooglo.adb, sem_ch12.adb,
	freeze.adb, sem_ch6.adb, par-ch12.adb: Minor reformatting.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

	* system-darwin-x86.ads, system-linux-s390x.ads, system-linux-alpha.ads,
	system-tru64.ads, system-irix-n32.ads, system-vxworks-arm.ads,
	system-linux-hppa.ads, system-linux-s390.ads,
	system-solaris-sparcv9.ads, system-mingw.ads, system-linux-ia64.ads,
	system-vms_64.ads, system-vxworks-sparcv9.ads, system-linux-ppc.ads,
	system-aix64.ads, system-lynxos-ppc.ads, system-linux-sh4.ads,
	system-solaris-x86.ads, system-linux-x86_64.ads, system-linux-x86.ads,
	system-vxworks-ppc.ads, system-hpux.ads, system-darwin-ppc.ads,
	system-solaris-sparc.ads, system-lynxos-x86.ads,
	system-vxworks-m68k.ads, system-hpux-ia64.ads, system-irix-o32.ads,
	system-solaris-x86_64.ads, system-mingw-x86_64.ads,
	system-vxworks-mips.ads, system-linux-sparc.ads, system-vms-ia64.ads,
	system-freebsd-x86.ads, system-aix.ads, system-darwin-x86_64.ads,
	system-vxworks-x86.ads: Remove GCC_ZCX_Support
	* s-taprop-posix.adb, s-taprop-irix.adb, s-taprop-vxworks.adb,
	s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-solaris.adb: Ditto.
	* opt.ads: Adjust comment.
	* targparm.ads, targparm.adb: Remove GCC_ZCX_Support_On_Target.
	* gnat1drv.adb: Do not check for GCC_ZCX_Support_On_Target.
	* system.ads: Move GCC_ZCX_Support to obsolete entries.

2011-08-29  Emmanuel Briot  <briot@adacore.com>

	* makeutl.adb (Do_Complete): Resolve symbolic links when a relative
	file name is specified on the gnatmake or gprbuild command line, and
	before we search for that file in the project.

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

	* sem_type.adb (Within_Instance): New predicate in Collect_Interps,
	used to determine whether a possible interpretation for an overloadable
	entity is declared within the current instantiation and should be
	included in the candidate set.

2011-08-29  Vasiliy Fofanov  <fofanov@adacore.com>

	* gnat_rm.texi, gnat_ugn.texi: Clean ups.

From-SVN: r178186
2011-08-29 12:14:45 +02:00
Ed Schonberg
97216ca891 sem_res.adb (Resolve_Actuals): Use base type to determine whether an access subtype is access_to_subprogram...
2011-08-29  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Actuals): Use base type to determine whether an
	access subtype is access_to_subprogram, when applying checks for
	RM 3.10.2 (27).

From-SVN: r178185
2011-08-29 12:06:16 +02:00
Arnaud Charlet
d3cb4cc0df [multiple changes]
2011-08-29  Matthew Heaney  <heaney@adacore.com>

	* a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Splice_Subtree): Only check
	for sibling when common parent.

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

	* get_scos.adb: Literals of Pragma_Id are pragma names prefixed with
	"pragma_".

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

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Enable freeze actions
	for the return type when in ASIS mode.

2011-08-29  Vincent Celier  <celier@adacore.com>

	* make.adb (Gnatmake): Get the default search dirs, then the target
	parameters after getting the Builder switches, as the Builder switches
	may include --RTS= and that could change the default search dirs.

2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Make_Adjust_Call): Rewrite to mimic the structure of
	Make_Final_Call. Move the processing for class-wide types before the
	processing for derivations from [Limited_]Controlled.
	(Make_Final_Call): Move the processing for class-wide types before the
	processing for derivations from [Limited_]Controlled.
	* s-stposu.adb (Allocate_Any_Controlled): Correct the membership check.
	Add code to account for alignments larger than the list header. Add a
	comment illustrating the structure of the allocated object + padding +
	header.
	(Deallocate_Any_Controlled): Add code to account for alignments larger
	than the list header.

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

	* sinfo.ads, sinfo.adb: New node kind
	N_Formal_Incomplete_Type_Definition, related flags.
	par-ch12.adb (P_Formal_Type_Declaration, G_Formal_Type_Definition):
	Parse formal incomplete types.
	* sem.adb (Analyze): Formal_Incomplete_Type_Definitions are handled in
	sem_ch12.
	* sem_ch7.adb (Analyze_Package_Specification, Unit_Requires_Body):
	Formal incomplete types do not need completion.
	* sem_ch12.adb (Analyze_Formal_Incomplete_Type,
	Validate_Incomplete_Type_Instance): New procedures to handle formal
	incomplete types.
	* freeze.adb (Freeze_Entity): Do not freeze the subtype of an actual
	that corresponds to a formal incomplete type.
	* sprint.adb: Handle formal incomplete type declarations.
	* exp_util.adb (Insert_Actions): An incomplete_type_definition is not
	an insertion point.

From-SVN: r178184
2011-08-29 12:02:08 +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
Arnaud Charlet
8c889ae483 [multiple changes]
2011-08-29  Thomas Quinot  <quinot@adacore.com>

	* s-pooglo.adb: Minor reformatting.

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

	* exp_ch5.adb (Expand_N_Assignment_Statement): if the left-hand side is
	an indexed component of a packed array whose element type is a record
	with a representation clause different from that of the right-hand
	side, generate a temporary to minimuze the number of bit-field
	operations generated.

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

	* exp_util.adb (Insert_Actions): Use clauses can be part of lists of
	declarations, and thus are likely insertion points for actions.

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

	* einfo.ads: Minor comment fix.

From-SVN: r178182
2011-08-29 11:41:15 +02:00
Arnaud Charlet
1a07a71a4b [multiple changes]
2011-08-29  Robert Dewar  <dewar@adacore.com>

	* frontend.adb, gnat1drv.adb: Minor reformatting.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

	* s-pooglo.adb (Allocate, Deallocate): Take into account the alignment.
	* a-fihema.adb (Allocate, Deallocate): Ditto.  Possibly add padding
	space in front of the header.

From-SVN: r178181
2011-08-29 11:38:56 +02:00
Johannes Kanig
4bcd641141 frontend.adb (Frontend): Exit after creating Standard package when -gnatd.H is present.
2011-08-29  Johannes Kanig  <kanig@adacore.com>

	* frontend.adb (Frontend): Exit after creating Standard package when
	-gnatd.H is present.
	* gnat1drv.adb (Gnat1drv): Call Backend right away when -gnatd.H is
	present.

From-SVN: r178180
2011-08-29 11:36:59 +02:00
Robert Dewar
f0f88eb6da exp_ch9.adb, [...]: Minor reformatting.
2011-08-29  Robert Dewar  <dewar@adacore.com>

	* exp_ch9.adb, mlib-prj.adb, prj.adb, prj.ads, ttypes.ads, sem_ch4.adb,
	makeutl.adb, makeutl.ads, atree.ads, snames.adb-tmpl,
	snames.ads-tmpl: Minor reformatting.

From-SVN: r178179
2011-08-29 11:34:19 +02:00
Philippe Gil
3e37be71aa prj.adb (Reset_Units_In_Table): New procedure.
2011-08-29  Philippe Gil  <gil@adacore.com>

	* prj.adb (Reset_Units_In_Table): New procedure.
	Reset units to avoid access to freed memory.

From-SVN: r178178
2011-08-29 11:30:33 +02:00