Commit Graph

111378 Commits

Author SHA1 Message Date
Kai Tietz
edf2239b37 configure: Regenerated.
* configure: Regenerated.
	* config.h.in: Regenerated.
	* acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR)  Add
	checks for ECHILD, ENOSPC, EPERM, ETIMEDOUT, and
	EWOULDBLOCK.
	*  config/os/mingw32/error_constants.h (errc): Add
	enumerator values no_child_process, no_space_on_device,
	not_supported, operation_not_permitted, operation_would_block,
	timed_out, and value_too_large,

From-SVN: r178257
2011-08-29 21:57:24 +02:00
Arnaud Charlet
226a7fa431 [multiple changes]
2011-08-29  Robert Dewar  <dewar@adacore.com>

	* sem_ch10.adb, a-coorse.adb, exp_dist.adb, exp_ch3.adb: Minor
	reformatting.
	* gcc-interface/Make-lang.in: Update dependencies.

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

	* alfa.ads (Name_Of_Heap_Variable): New constant name.
	* lib-xref-alfa.adb, lib-xref.adb, lib-xref.ads (Drefs): New global
	table to hold dereferences.
	(Add_ALFA_Xrefs): Take into account dereferences as special
	reads/writes to the variable "HEAP".
	(Enclosing_Subprogram_Or_Package): Move subprogram here.
	(Generate_Dereference): New procedure to store a read/write dereferencew
	in the table Drefs.
	* put_alfa.adb (Put_ALFA): Use different default than (0,0) used for
	the special "HEAP" var.
	* sem_ch4.adb (Analyze_Explicit_Dereference): Store read dereference
	in ALFA mode.
	* sem_util.adb (Note_Possible_Modification): Store write dereference
	in ALFA mode.

From-SVN: r178252
2011-08-29 16:40:11 +02:00
Hristian Kirtchev
dfbcb149aa exp_ch3.adb (Freeze_Type): Generate an accessibility check which ensures that the level of the subpool...
2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch3.adb (Freeze_Type): Generate an accessibility check which
	ensures that the level of the subpool access type is not deeper than
	that of the pool object.
	* sem_util.adb (Object_Access_Level): Expand to handle defining
	identifiers.
	* sem_res.adb (Resolve_Allocator): Add a guard to avoid examining the
	subpool handle name of a rewritten allocator.

From-SVN: r178250
2011-08-29 16:33:59 +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
8027b4559b [multiple changes]
2011-08-29  Thomas Quinot  <quinot@adacore.com>

	* a-except.adb, a-except-2005.adb: Minor comment rewording and
	reformatting.

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

	* sem_ch3.adb (Array_Type_Declaration): Remove insertion of
	declaration for Itypes in Alfa mode.

From-SVN: r178246
2011-08-29 16:26:53 +02:00
Arnaud Charlet
d85fd922e1 [multiple changes]
2011-08-29  Robert Dewar  <dewar@adacore.com>

	* a-cdlili.ads, a-coinve.ads, a-coorma.adb, a-coorma.ads, s-tassta.adb,
	a-cborma.adb, a-cborma.ads, a-cohama.ads, a-coorse.ads, a-cbhama.ads,
	a-cborse.ads, a-cobove.adb, a-cobove.ads, a-cbhase.ads: Minor
	reformatting.

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

	* exp_ch7.adb, exp_ch7.ads (Build_Exception_Handler): Move its spec to
	package spec.
	* exp_intr.adb (Expand_Unc_Deallocation): Use Build_Exception_Handler.
	* a-except.adb, a-except-2005.adb (Rcheck_22): Do not defer aborts
	while raising PE.

From-SVN: r178245
2011-08-29 16:25:19 +02:00
Arnaud Charlet
fd3d2680c8 [multiple changes]
2011-08-29  Robert Dewar  <dewar@adacore.com>

	* a-cbhama.adb, a-cbhama.ads: Minor reformatting.

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

	* sem_ch8.adb (Analyze_Subprogram_Renaming): Complete support for
	renamings of formal subprograms when the actual for a formal type is
	class-wide.

From-SVN: r178244
2011-08-29 16:23:16 +02:00
Matthew Heaney
dfbf013faf a-cbhama.ads, [...] (Move): Clear Source following assignment to Target.
2011-08-29  Matthew Heaney  <heaney@adacore.com>

	* a-cbhama.ads, a-cbhase.ads (Move): Clear Source following assignment
	to Target.

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

	* a-cborma.ads, a-cborse.ads (Cursor): Default-initialize all
	components of record type.
	* a-cborma.adb, a-cborse.adb (Move): Clear Source following assignmentw
	to Target.

From-SVN: r178243
2011-08-29 16:21:27 +02:00
Ed Schonberg
a6dd3a540a a-cbhama.adb, [...]: Add iterator machinery to container packages.
2011-08-29  Ed Schonberg  <schonberg@adacore.com>

	* a-cbhama.adb, a-cbhama.ads, a-cborma.adb, a-cborma.ads, a-cobove.adb,
	a-cobove.ads, a-coorma.adb, a-coorma.ads: Add iterator machinery to
	container packages.

From-SVN: r178242
2011-08-29 16:19:32 +02:00
Arnaud Charlet
c54796e0c4 [multiple changes]
2011-08-29  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, sem_util.adb, gnat1drv.adb, s-parint.ads: Minor
	reformatting.

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

	* a-cbhama.ads, a-cbhase.ads (Cursor): Default-initialize all
	components of record type.

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

	* s-tassta.adb (Task_Wrapper): Handle and ignore exceptions propagated
	by the termination handler.

From-SVN: r178241
2011-08-29 16:17:49 +02:00
Arnaud Charlet
9fd9d2beb0 [multiple changes]
2011-08-29  Yannick Moy  <moy@adacore.com>

	* sem_ch3.adb (Array_Type_Declaration): Create declarations for Itypes
	created in Alfa mode, instead of inserting artificial declarations of
	non-Itypes in the tree.
	* sem_util.adb, sem_util.ads (Itype_Has_Declaration): New function to
	know if an Itype has a corresponding declaration, as defined in
	itypes.ads.

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

	* gnat1drv.adb: Minor rewrite.

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

	* s-tasuti.adb (Make_Passive): Work around race condition in
	Make_Independent, which can cause Wait_Count to be zero. So instead of
	asserting that Wait_Count > 0, and then decrementing it, decrement it
	only if Wait_Count > 0.
	* s-taskin.ads (Wait_Count, Alive_Count, Awake_Count): All of these
	should be nonnegative, so declare them Natural instead of Integer.

From-SVN: r178240
2011-08-29 16:15:28 +02:00
Arnaud Charlet
833eaa8a3d [multiple changes]
2011-08-29  Robert Dewar  <dewar@adacore.com>

	* exp_ch5.adb, sem_ch3.adb, a-cihama.adb, a-cihama.ads, exp_ch7.adb,
	sem_ch5.adb, a-ciorse.adb, a-ciorse.ads, sem_ch12.adb, a-cidlli.adb,
	a-cidlli.ads, sem_util.adb, sem_res.adb, gnat1drv.adb, a-except.adb,
	a-except.ads, a-except-2005.ads, sem_ch4.adb, exp_disp.adb,
	exp_aggr.adb, sem_ch13.adb, par-ch3.adb: Minor reformatting.

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

	* s-auxdec-vms-alpha.adb: Add comments, remove some HT before labels.

2011-08-29  Vadim Godunko  <godunko@adacore.com>

	* s-parint.ads: Minor comment clarification.

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

	* prj.adb (Initialize): Make sure that new reserved words after Ada 95
	may be used as identifiers.

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

	* a-coinho.ads: Minor reformating.

From-SVN: r178239
2011-08-29 16:12:57 +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
14848f57e0 [multiple changes]
2011-08-29  Pascal Obry  <obry@adacore.com>

	* exp_disp.adb: Minor comment fix.
	(Make_Disp_Asynchronous_Select_Body): Properly initialize out parameters
	to avoid warnings when compiling with -Wall.
	(Make_Disp_Conditional_Select_Body): Likewise.
	(Make_Disp_Timed_Select_Body): Likewise.

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

	* sem_ch12.adb (Analyze_Formal_Subprogram_Declaration): If default is
	an entity name, generate reference for it.

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

	* exp_ch5.adb (Expand_Iterator_Loop): Uniform handling of "X of S"
	iterator form.
	* sem_util.adb (Is_Iterator, Is_Reversible_Iterator): Yield True for
	the class-wide type.
	* sem_ch5.adb: Move some rewriting to the expander, where it belongs.

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

	* sem_ch8.adb (Check_Constrained_Object): Do not create an actual
	subtype for an object whose type is an unconstrained union.

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

	* par-ch3.adb (P_Array_Type_Definiation, P_Component_Items): "aliased"
	is allowed in a component definition, by AI95-406.

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

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

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

	* a-except-2005.adb: Alphabetize all routines.
	(Triggered_By_Abort): New routine.
	* a-except-2005.ads (Triggered_By_Abort): New routine.
	* a-except.adb Alphabetize all routines.
	(Triggered_By_Abort): New routine.
	* a-except.ads (Triggered_By_Abort): New routine.
	* exp_ch7.adb: Update all comments involving the detection of aborts in
	finalization code.
	(Build_Object_Declarations): Do not generate code to detect the
	presence of an abort at the start of finalization code, use a runtime
	routine istead.
	* rtsfind.ads: Add RE_Triggered_By_Abort to tables RE_Id and
	RE_Unit_Table.
	* sem_res.adb (Resolve_Allocator): Emit a warning when attempting to
	allocate a task on a subpool.
	* s-stposu.adb: Add library-level flag Finalize_Address_Table_In_Use.
	The flag disables all actions related to the maintenance of
	Finalize_Address_Table when subpools are not in use.
	(Allocate_Any_Controlled): Signal the machinery that subpools are in
	use.
	(Deallocate_Any_Controlled): Do not call Delete_Finalize_Address which
	performs costly task locking when subpools are not in use.

From-SVN: r178236
2011-08-29 16:02:26 +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
Paolo Carlini
9fdf1422c7 2011-08-29 Paolo Carlini <paolo.carlini@oracle.com>
* Tweak last ChangeLog entry.

From-SVN: r178234
2011-08-29 13:50:26 +00:00
Arnaud Charlet
ddf67a1d5d [multiple changes]
2011-08-29  Vincent Celier  <celier@adacore.com>

	* make.adb (Scan_Make_Arg): Take any option as is in packages Compiler,
	Binder or Linker of the main project file.

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

	* inline.adb (Add_Scopes_To_Clean): Exclude any entity within a generic
	unit.

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

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

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

	* exp_ch11.adb: Minor expansion of comment.

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

	* lib-xref-alfa.adb (Add_ALFA_Scope): Treat generic entities.

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

	* sem_res.adb (Resolve_Arithmetic_Op): If the node has a universal
	interpretation, set the type before resolving the operands, because
	legality checks on an exponention operand need to know the type of the
	context.

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

	* sem_ch12.adb (Analyze_Package_Instantiation): Do not set delayed
	cleanups on a master if the instance is within a generic unit.
	Complement to the corresponding fix to inline.adb for K520-030.

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

	* exp_ch7.adb (Build_Raise_Statement): Raise PE instead of the current
	occurrence.
	* exp_intr.adb: Minor comment fix.

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

	* sem_ch13.adb (Analyze_Aspect_Specifications): Fix cases where
	Delay_Required was used as an uninitialized variable.

From-SVN: r178233
2011-08-29 15:48:36 +02:00
Robert Dewar
690943fcd4 a-cdlili.adb, [...]: Minor reformatting.
2011-08-29  Robert Dewar  <dewar@adacore.com>

	* a-cdlili.adb, a-cdlili.ads, a-coinve.adb, a-coinve.ads,
	sem_util.adb, sem_util.ads, a-cohama.adb, a-cohama.ads, a-coorse.adb,
	a-coorse.ads, aspects.ads, sem_ch8.adb: Minor reformatting.

From-SVN: r178232
2011-08-29 15:42:00 +02:00
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