Commit Graph

111813 Commits

Author SHA1 Message Date
Richard Guenther
1a60c3521a re PR tree-optimization/48149 (Piecewise complex pass-through not optimized)
2011-09-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/48149
	* tree-ssa-sccvn.c (vn_get_expr_for): Simplify.  Fix tuplification bug.
	(vn_valueize): Move earlier.
	(valueize_expr): Use vn_valueize.
	(simplify_binary_expression): Simplify, also combine COMPLEX_EXPR
	operands.
	(simplify_unary_expression): Simplify.

	* gcc.dg/tree-ssa/ssa-fre-32.c: New testcase.

From-SVN: r178597
2011-09-06 14:36:00 +00:00
Robert Dewar
ef417be147 sem_ch10.adb, [...] (Not_Impl_Defined_Unit): New name for Is_RM_Defined_Unit.
2011-09-06  Robert Dewar  <dewar@adacore.com>

	* sem_ch10.adb, impunit.ads, impunit.adb (Not_Impl_Defined_Unit): New
	name for Is_RM_Defined_Unit. Also several fixes to this unit.

From-SVN: r178596
2011-09-06 15:31:15 +02:00
Richard Guenther
5a7d7f9cf3 re PR tree-optimization/48317 (SCCVN does not handle vector constructors)
2011-09-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/48317
	* tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true
	trailing array.
	(sizeof_vn_nary_op): New inline function.
	(vn_nary_op_lookup_pieces): Adjust.
	(vn_nary_op_insert_pieces): Likewise.
	* tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length.
	(init_vn_nary_op_from_pieces): Adjust signature.  Deal with
	any number of operands.
	(vn_nary_length_from_stmt): New function.
	(init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling.
	(vn_nary_op_lookup_pieces): Adjust signature and allocate properly
	sized temporary.
	(vn_nary_op_lookup): Likewise.
	(vn_nary_op_lookup_stmt): Likewise.
	(vn_nary_op_insert_into): Likewise.
	(vn_nary_op_insert_stmt): Likewise.
	(visit_use): Handle CONSTRUCTOR as nary.
	* tree-ssa-pre.c (phi_translate_1): Adjust.
	(create_expression_by_pieces): Likewise.
	(compute_avail): Likewise.

	* gcc.dg/tree-ssa/ssa-fre-31.c: New testcase.

From-SVN: r178595
2011-09-06 13:17:50 +00:00
Robert Dewar
0a03460680 impunit.ads, [...] (Is_RM_Defined_Unit): New function.
2011-09-06  Robert Dewar  <dewar@adacore.com>

	* impunit.ads, impunit.adb (Is_RM_Defined_Unit): New function.
	* s-rident.ads: New restriction No_Implementation_Units
	(this restriction is also part of the profile
	No_Implementation_Extensions)
	* sem_ch10.adb (Analyze_With_Clause): Add check for
	No_Implementation_Units restriction.

From-SVN: r178594
2011-09-06 15:09:41 +02:00
Arnaud Charlet
ebb6faaafa [multiple changes]
2011-09-06  Jerome Guitton  <guitton@adacore.com>

	* sysdep.c (__gnat_get_task_options): Disable VX_SPE_TASK
	on vThreads.

2011-09-06  Thomas Quinot  <quinot@adacore.com>

	* s-solita.adb: Minor reformatting.

2011-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): The body that
	is a rewriting of an expression function does not freeze previous
	entities.

2011-09-06  Robert Dewar  <dewar@adacore.com>

	* impunit.adb (Is_Known_Unit): Fix bad handling of Ada 2012 case

From-SVN: r178593
2011-09-06 15:07:09 +02:00
Tristan Gingold
604352863c Makefile.in: Handle e500v2-wrs-vxworksae like powerpc-wrs-vxworksae.
2011-09-06  Tristan Gingold  <gingold@adacore.com>

	* gcc-interface/Makefile.in: Handle e500v2-wrs-vxworksae like           
	powerpc-wrs-vxworksae.

From-SVN: r178592
2011-09-06 14:16:01 +02:00
Arnaud Charlet
08f8a983b9 [multiple changes]
2011-09-06  Thomas Quinot  <quinot@adacore.com>

	* s-os_lib.ads (Spawn): Minor documentation clarification,
	Success is True for a zero exit status.

2011-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb: Add message for common iterator error.

2011-09-06  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch3.adb (Build_Initialization_Call): If the target is a
	selected component discriminated by a current instance, replace
	the constraint with a reference to the target object, regardless
	of whether the context is an init_proc.

2011-09-06  Robert Dewar  <dewar@adacore.com>

	* exp_attr.adb: Descriptor_Size is never static.

2011-09-06  Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: Add documentation for LSLOC metric in gnatmetric

2011-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* gnat_rm.texi: Clarify that attribute Descriptor_Size is
	non-static.

2011-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve): An expression that is the body of an
	expression function does not freeze.

2011-09-06  Matthew Heaney  <heaney@adacore.com>

	* a-csquin.ads, a-cusyqu.adb, a-cbprqu.adb, a-cbsyqu.adb,
	a-cuprqu.adb: Changed copyright notice to indicate current
	year only.

2011-09-06  Vincent Celier  <celier@adacore.com>

	* prj.adb: Minor spelling error fix in comment
	* sem_res.adb: Minor reformatting

2011-09-06  Pascal Obry  <obry@adacore.com>

	* sysdep.c (winflush_nt): Removed as not needed anymore.
	(winflush_95): Likewise.
	(winflush_init): Likewise.
	(winflush_function): Likewise.
	(getc_immediate_common): Remove call to winflush_function.

From-SVN: r178591
2011-09-06 14:14:30 +02:00
Hristian Kirtchev
cb3d8731fd exp_attr.adb (Expand_N_Attribute_Reference): Rewrite the processing for Descriptor_Size.
2011-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Rewrite the
	processing for Descriptor_Size.
	* gnat_rm.texi: Rephrase the wording for attribute Descriptor_Size
	to account for its broader usage.
	* sem_attr.adb (Analyze_Attribute): Change the error detection
	circuitry for Descriptor_Size as the attribute is now applicable
	to all types.

From-SVN: r178590
2011-09-06 14:03:30 +02:00
Robert Dewar
f7e6fc478f sem_attr.adb, [...]: Minor reformatting.
2011-09-06  Robert Dewar  <dewar@adacore.com>

	* sem_attr.adb, prj-nmsc.adb, exp_aggr.adb: Minor reformatting.

From-SVN: r178589
2011-09-06 13:59:12 +02:00
Ira Rosen
8f40ccea45 arm.c (arm_preferred_simd_mode): Check TARGET_NEON_VECTORIZE_DOUBLE instead of TARGET_NEON_VECTORIZE_QUAD.
* config/arm/arm.c (arm_preferred_simd_mode): Check
	TARGET_NEON_VECTORIZE_DOUBLE instead of
	TARGET_NEON_VECTORIZE_QUAD.
	(arm_autovectorize_vector_sizes): Likewise.
	* config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse
	mask of mvectorize-with-neon-double.  Add RejectNegative.
	(mvectorize-with-neon-double): New.

From-SVN: r178588
2011-09-06 11:29:53 +00:00
Arnaud Charlet
f8e9fc30f7 [multiple changes]
2011-09-06  Ed Schonberg  <schonberg@adacore.com>

	* lib-xref.adb (OK_To_Set_Referenced): A reference to a formal
	in a parameter association must not set the Referenced flag on
	the formal.
	* prj-nmsc.adb (Check_File_Naming_Schemes): Remove useless formal

2011-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* gnat_rm.texi: Add a section on attribute Descriptor_Size

From-SVN: r178587
2011-09-06 13:03:44 +02:00
Arnaud Charlet
e8e38f35ff Makefile.in (common-tools, [...]): Speed up by using -j0.
* gcc-interface/Makefile.in (common-tools, gnatmake-re,                 
	gnatlink-re): Speed up by using -j0.

From-SVN: r178586
2011-09-06 12:55:20 +02:00
Arnaud Charlet
203ddceaed [multiple changes]
2011-09-06  Robert Dewar  <dewar@adacore.com>

	* s-tpopsp-vxworks.adb, prj-nmsc.adb: Minor reformatting.

2011-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* gcc-interface/trans.c (Attribute_to_gnu): New case for
	attribute Descriptor_Size.
	* exp_attr.adb (Expand_N_Attribute_Reference): Add processing
	for attribute Descriptor_Size.
	* exp_ch7.adb (Double_Size_Of): Removed.
	(Make_Finalize_Address_Stmts): Remove the code which generates
	an expression to calculate the dope vector of an unconstrained
	array. Instead use attribute Descriptor_Size and leave the
	calculation to the back end.
	(Nearest_Multiple_Rounded_Up): Removed.
	(Size_Of): Removed.
	* sem_attr.adb (Analyze_Attribute): Add processing for attribute
	Descriptor_Size. Currently the attribute is applicable only
	to unconstrained arrays.
	(Eval_Attribute): Add processing for
	attribute Descriptor_Size.
	* snames.ads-tmpl: Add a predefined name and an Attribute_Id
	for Descriptor_Size.

2011-09-06  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb: Remove useless formal.

From-SVN: r178585
2011-09-06 12:53:58 +02:00
Richard Guenther
32dba5ef78 tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify matching.
2011-09-06  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify
	matching.

From-SVN: r178584
2011-09-06 10:45:09 +00:00
Arnaud Charlet
ba759acdc8 [multiple changes]
2011-09-06  Yannick Moy  <moy@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications): Call
	Set_Corresponding_Aspect when creating pragma from aspect.
	(Add_Predicates): Use new field Corresponding_Aspect.
	* sem_prag.adb (Analyze_Pragma): Make Pname hold source aspect
	name when present, for the purpose of issuing error messages;
	remove local procedure Error_Pragma_Arg_Alternate_Name.
	* sinfo.adb, sinfo.ads (Corresponding_Aspect): New field in
	N_Pragma node.
	(From_Dynamic_Predicate, From_Static_Predicate): Remove fields from
	N_Pragma node.

2011-09-06  Robert Dewar  <dewar@adacore.com>

	* checks.adb, s-except.ads, g-socket.adb: Minor reformatting.

2011-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch6.adb (Build_Heap_Allocator): Add new
	local variable Desig_Typ. Code and comment reformatting. Add
	machinery to ensure that the allocation uses a fat pointer when
	the type of the return object is a constrained array and the
	function return type is an unconstrained array.

2011-09-06  Vincent Celier  <celier@adacore.com>

	* make.adb, prj-part.adb, prj-nmsc.adb: Remove unused formal
	parameters in subprograms.

2011-09-06  Arnaud Charlet  <charlet@adacore.com>

	* s-taprop-mingw.adb (Finalize_TCB): Fix typo.

2011-09-06  Thomas Quinot  <quinot@adacore.com>

	* s-taprop-vxworks.adb, s-tpoaal.adb, s-tpopsp-vxworks.adb
	(System.Tasking.Primitive_Operations.Specific.Delete): Remove
	subprogram.
	(System.Tasking.Primitive_Operations.Specific.Set): If argument
	is null, destroy task specific data, to make API consistent with
	other platforms, and thus compatible with the shared version
	of s-tpoaal.adb.
	(System.Tasking.Primitive_Operations.ATCB_Allocation.Free_ATCB):
	Document the above assumption.

From-SVN: r178583
2011-09-06 12:43:17 +02:00
Arnaud Charlet
f4f92d9d59 [multiple changes]
2011-09-06  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.adb (Expand_Inlined_Call): Fix use of uninitialized
	variable for type of return value when return type is
	unconstrained and context is an assignment.

2011-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Check_Class_Wide_Actual): Do not generate body of
	class-wide operation if expansion is not enabled.

2011-09-06  Eric Botcazou  <ebotcazou@adacore.com>

	* checks.adb (Apply_Scalar_Range_Check): Deal with access
	type prefix.

2011-09-06  Yannick Moy  <moy@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications, case
	Aspect_Invariant): Do not issue error at this point on illegal
	pragma placement, as this is checked later on when analyzing
	the corresponding pragma.
	* sem_prag.adb (Error_Pragma_Arg_Alternate_Name): New procedure
	similar to Error_Pragma_Arg, except the source name of the
	aspect/pragma to use in warnings may be equal to parameter
	Alt_Name (Analyze_Pragma, case Pragma_Invariant): refine error
	message to distinguish source name of pragma/aspect, and whether
	the illegality resides in the type being public, or being private
	without a public declaration

2011-09-06  Thomas Quinot  <quinot@adacore.com>

	* g-socket.adb (Check_For_Fd_Set): On Windows, no need for bitmap
	size check (fd_set is implemented differently on that platform).

2011-09-06  Thomas Quinot  <quinot@adacore.com>

	* s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
	s-tpoaal.adb, s-taprop-mingw.adb, s-taprop-linux.adb,
	s-taprop-solaris.adb, s-taprop-irix.adb, s-taprop.ads,
	s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-posix.adb
	(ATCB_Allocation): New subpackage of
	System.Tasking.Primitive_Operations, shared across all targets
	with full tasking runtime.
	(ATCB_Allocation.New_ATCB): Moved there (from target specific
	s-taprop bodies).
	(ATCB_Allocation.Free_ATCB): New subprogram. Deallocate an ATCB,
	taking care of establishing a local temporary ATCB if the one
	being deallocated is Self, to avoid a reference to the freed
	ATCB in Abort_Undefer.

2011-09-06  Thomas Quinot  <quinot@adacore.com>

	* s-tassta.adb, s-taskin.ads (Free_Task): If the task is not
	terminated, mark it for deallocation upon termination.
	(Terminate_Task): Call Free_Task again if the task is marked
	for automatic deallocation upon termination.

From-SVN: r178582
2011-09-06 12:35:25 +02:00
Paolo Carlini
4cdccf2665 re PR libstdc++/50257 ([C++0x] unordered_map slow initialization due to huge __prime_list)
2011-09-06  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/50257
	* include/bits/hashtable_policy.h (_Prime_rehash_policy::
   	_M_next_bkt): Optimize for small argument.

From-SVN: r178581
2011-09-06 10:22:21 +00:00
Tom de Vries
1255c03ad5 recog.c (asm_labels_ok): New function.
2011-09-06  Tom de Vries  <tom@codesourcery.com>

	* recog.c (asm_labels_ok): New function.
	(check_asm_operands): Use asm_labels_ok.

From-SVN: r178580
2011-09-06 10:02:41 +00:00
Robert Dewar
df1771759c a-cbprqu.ads, [...]: Mark all entities as Implementation_Defined
2011-09-06  Robert Dewar  <dewar@adacore.com>

	* a-cbprqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cusyqu.ads,
	a-intnam-aix.ads, a-intnam-darwin.ads, a-intnam-dummy.ads,
	a-intnam-freebsd.ads, a-intnam-hpux.ads, a-intnam-irix.ads,
	a-intnam-linux.ads, a-intnam-lynxos.ads, a-intnam-mingw.ads,
	a-intnam-solaris.ads, a-intnam-tru64.ads,
	a-intnam-vms.ads, a-intnam-vxworks.ads, a-intnam.ads, interfac.ads,
	cstand.adb, s-maccod.ads: Mark all entities as Implementation_Defined
	* einfo.ads, einfo.adb (Is_Implementation_Defined): New flag
	* par-prag.adb: Add dummy entry for pragma Implementation_Defined
	* s-rident.ads: Add new restriction No_Implementation_Identifiers
	Add new profile No_Implementation_Extensions
	* sem_prag.adb: Implement pragma Implementation_Defined Implement
	profile No_Implementation_Extensions
	* sem_util.adb: Minor reformatting (Set_Entity_With_Style_Check):
	Check violation of restriction No_Implementation_Identifiers
	* snames.ads-tmpl: Add entries for pragma Implementation_Defined
	Add entry for Name_No_Implementation_Extensions

2011-09-06  Robert Dewar  <dewar@adacore.com>

	* impunit.ads: Minor reformatting.

From-SVN: r178579
2011-09-06 11:46:21 +02:00
Arnaud Charlet
b991dd43ae [multiple changes]
2011-09-06  Robert Dewar  <dewar@adacore.com>

	* ali.adb, sem_ch13.adb, lib-xref.adb: Minor reformatting.

2011-09-06  Pascal Obry  <obry@adacore.com>

	* s-osinte-linux.ads, s-oscons-tmplt.c: Use oscons to define sigset_t
	types.

From-SVN: r178578
2011-09-06 11:37:22 +02:00
Arnaud Charlet
516785cc7f [multiple changes]
2011-09-06  Robert Dewar  <dewar@adacore.com>

	* g-socket.adb: Minor reformatting

2011-09-06  Javier Miranda  <miranda@adacore.com>

	* ali.adb (Scan_ALI): Add missing support to load references of
	entities imported from other languages.
	* ali.ads (Xref_Record): Adding new fields to store the language and
	name of an imported entity.
	* lib-xref.adb (Output_Import_Export_Info): Fix typo
	in comment.

2011-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case Type_Invariant): A type invariant
	is allowed on a full type declaration if it is the completion of
	a private declarations.
	* sem_ch13.adb (Analyze_Aspect_Specifications): An invariant
	aspect is allowed on a full type declaration in the private part
	of a package.

From-SVN: r178577
2011-09-06 11:32:56 +02:00
Arnaud Charlet
9669194386 [multiple changes]
2011-09-06  Robert Dewar  <dewar@adacore.com>

	* sem_ch8.ads: Minor reformatting

2011-09-06  Thomas Quinot  <quinot@adacore.com>

	* s-oscons-tmplt.c, g-socket.adb (GNAT.Sockets.Clear,Set,Is_Set):
	Guard against socket values that are not in [0;FD_SETSIZE[

From-SVN: r178576
2011-09-06 11:28:33 +02:00
Arnaud Charlet
54bf19e458 [multiple changes]
2011-09-06  Robert Dewar  <dewar@adacore.com>

	* s-osinte-linux.ads, a-iteint.ads, exp_ch6.adb, s-solita.adb: Minor
	reformatting.

2011-09-06  Arnaud Charlet  <charlet@adacore.com>

	* s-linux-alpha.ads: Minor reformatting
	* s-oscons-tmplt.c: Fix generated comments in s-oscons template.
	Use sizeof instead of corresponding C defines in s-oscons template.

From-SVN: r178575
2011-09-06 11:26:02 +02:00
Vadim Godunko
5d42cba16f a-convec.ads, [...]: Minor reformatting.
2011-09-06  Vadim Godunko  <godunko@adacore.com>

	* a-convec.ads, a-iteint.ads: Minor reformatting.

From-SVN: r178574
2011-09-06 11:20:36 +02:00
Arnaud Charlet
77aa62e72f [multiple changes]
2011-09-06  Vincent Celier  <celier@adacore.com>

	* projects.texi: Add menus and @node lines.

2011-09-06  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.adb (Expand_Inlined_Call): Handle properly the case
	where the return type is an unconstrained array and the context
	is an assignment. Optimize the case when the target of the
	assignment is a selected component.

2011-09-06  Arnaud Charlet  <charlet@adacore.com>

	* s-solita.adb: Update comments.

2011-09-06  Pascal Obry  <obry@adacore.com>

	* s-linux.ads, s-linux-alpha.ads, s-linux-hppa.ads, s-linux-mipsel.ads,
	s-linux-sparc.ads: Remove hard coded and now wrong definitions.
	* s-oscons-tmplt.c: Add support for generating pthread related
	types size on GNU/Linux as done for Darwin.
	* s-osinte-linux.ads: Use s-oscons to define the pthread types.

From-SVN: r178573
2011-09-06 11:15:15 +02:00
Arnaud Charlet
886b5a18d5 [multiple changes]
2011-09-06  Robert Dewar  <dewar@adacore.com>

	* exp_ch6.adb: Fix minor typo.

2011-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb: Remove with and use clauses for Get_Targ.
	(Alignment_Of): Moved to the body of Nearest_Multiple_Rounded_Up.
	(Double_Size_Of): Alphabetized. Update the comment on usage.
	(Make_Finalize_Address_Stmts): Update comments and reformat code.
	(Nearest_Multiple_Rounded_Up): New routine.
	(Size_Of): Update comment on usage. The generated expression now
	accounts for alignment gaps by rounding the size of the type to the
	nearest multiple rounded up of the type's alignment.

From-SVN: r178572
2011-09-06 11:02:44 +02:00
Arnaud Charlet
57a3fca931 [multiple changes]
2011-09-06  Robert Dewar  <dewar@adacore.com>

	* exp_ch7.adb, g-comlin.adb: Minor reformatting.

2011-09-06  Steve Baird  <baird@adacore.com>

	* exp_ch4.adb (Expand_Allocator_Expression): Look through
	derived subprograms in checking for presence of an
	Extra_Accessibility_Of_Result formal parameter.
	* exp_ch6.adb (Expand_Call): Look through derived subprograms in
	checking for presence of an Extra_Accessibility_Of_Result formal
	parameter.
	(Expand_Call.Add_Actual_Parameter): Fix a bug in the
	case where the Parameter_Associatiations attribute is already set,
	but set to an empty list.
	(Needs_Result_Accessibility_Level):
	Unconditionally return False. This is a temporary
	change, disabling the Extra_Accessibility_Of_Result
	mechanism.
	(Expand_Simple_Function_Return): Check for
	Extra_Accessibility_Of_Result parameter's presence instead of
	testing Ada_Version when generating a runtime accessibility
	check which makes use of the parameter.

From-SVN: r178571
2011-09-06 10:27:42 +02:00
Arnaud Charlet
eaed0c3777 [multiple changes]
2011-09-06  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch4.adb (Expand_N_Case_Expression): Actions created for the
	expression in a given case alternative must be attached to the
	statement list of the ccrresponding case statement alternative
	They cannot be propagated ahead of the case statement, because
	the validity of the expression that generated the action may
	hold only for that alternative.

2011-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb: Remove with and use clauses for Get_Targ.
	(Alignment_Of): Remove the code for strict alignment targets.
	(Double_Alignment_Of): Removed.
	(Double_Size_Of): New routine.
	(Make_Finalize_Address_Stmts): Change the
	calculation of the dope's size.  Update relevant comments.
	(Size_Of): New routine.

From-SVN: r178570
2011-09-06 10:07:27 +02:00
Arnaud Charlet
b8a93198c2 [multiple changes]
2011-09-06  Steve Baird  <baird@adacore.com>

	* einfo.ads (Extra_Accessibility): Update associated comment to use
	the term "present" correctly ("present" just means that it is not
	an error to query the value of the attribute - it does not imply
	that the value must be non-null).
	(Extra_Constrained): Ditto.
	(Is_Visible_Formal): Ditto.
	(Extra_Accessibility_Of_Result) Ditto; also add Inline pragma.
	(Set_Extra_Accessibility_Of_Result): Add Inline pragma.
	* exp_ch4.adb (Expand_Allocator_Expression): Improve a comment.
	* exp_ch6.adb (Expand_Call): The callee may require an
	Extra_Accessibility_Of_Result actual parameter even if Ada_Version
	< Ada_2012. This can occur if the callee is exported from a Gnat
	runtimes unit. Also improve a comment.

2011-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb: Add with and use clauses for Get_Targ.
	(Alignment_Of): Rename formal parameter Some_Typ
	to Typ, update related comment. Use the allocator alignment on
	strict alignment targets such as SPARC.
	(Double_Alignment_Of): Rename formal parameter Some_Typ to Typ, update
	related comment.

2011-09-06  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch9.adb (Check_Interfaces): Test
	Is_Limited_Type rather than Is_Limited_Record when checking that
	the partial view of a synchronized full view must be limited.

2011-09-06  Emmanuel Briot  <briot@adacore.com>

	* g-comlin.adb (Free): Fix memory leak.

From-SVN: r178569
2011-09-06 10:03:04 +02:00
Robert Dewar
ebf494ec28 sem_util.adb, [...]: Minor reformatting and code reorganization.
2011-09-06  Robert Dewar  <dewar@adacore.com>

	* sem_util.adb, exp_ch6.adb: Minor reformatting and code reorganization.

From-SVN: r178568
2011-09-06 09:56:50 +02:00
Steve Baird
63585f754c einfo.ads (Extra_Accessibility_Of_Result): New function...
2011-09-06  Steve Baird  <baird@adacore.com>

	* einfo.ads (Extra_Accessibility_Of_Result): New function; in the
	(Ada2012) cases described in AI05-0234 where the accessibility
	level of a function result is "determined by the point of
	call", an implicit parameter representing that accessibility
	level is passed in. Extra_Accessibilty_Of_Result yields this
	additional formal parameter. Extra_Accessibility_Of_Result
	is analogous to the existing Extra_Accessibility
	function used in the implementation of access parameters.
	(Set_Extra_Accessibility_Of_Result): New procedure; sets
	Extra_Accessibility_Of_Result attribute.
	* einfo.adb (Extra_Accessibility_Of_Result): New function.
	(Set_Extra_Accessibility_Of_Result): New procedure.
	(Write_Field19_Name): Display Extra_Accessibilty_Of_Result attribute.
	* sem_util.adb (Dynamic_Accessibility_Level): Set Etype of
	an accessibility level literal to Natural; introduce a nested
	function, Make_Level_Literal, to do this.
	* exp_ch6.ads (Needs_Result_Accessibility_Level): New function;
	determines whether a given function (or access-to-function
	type) needs to have an implicitly-declared accessibility-level
	parameter added to its profile.
	(Add_Extra_Actual_To_Call): Export an existing procedure which was
	previously declared in the body of Exp_Ch6.
	* exp_ch6.adb (Add_Extra_Actual_To_Call): Export declaration by moving
	it to exp_ch6.ads.
	(Has_Unconstrained_Access_Discriminants): New Function; a
	predicate on subtype entities which returns True if the given
	subtype is unconstrained and has one or more access discriminants.
	(Expand_Call): When expanding a call to a function which takes an
	Extra_Accessibility_Of_Result parameter, pass in the appropriate
	actual parameter value. In the case of a function call which is
	used to initialize an allocator, this may not be possible because
	the Etype of the allocator may not have been set yet. In this
	case, we defer passing in the parameter and handle it later in
	Expand_Allocator_Expression.
	(Expand_Simple_Function_Return): When returning from a function which
	returns an unconstrained subtype having at least one access
	discriminant, generate the accessibility check needed to ensure that
	the function result will not outlive any objects designated by its
	discriminants.
	(Needs_Result_Accessibility_Level): New function; see exp_ch6.ads
	description.
	* exp_ch4.adb (Expand_Allocator_Expression): When a function call
	is used to initialize an allocator, we may need to pass in "the
	accessibility level determined by the point of call" (AI05-0234)
	to the function. Expand_Call, where such actual parameters are
	usually generated, is too early in this case because the Etype of
	the allocator (which is used in determining the level to be passed
	in) may not have been set yet when Expand_Call executes. Instead,
	we generate code to pass in the appropriate actual parameter
	in Expand_Allocator_Expression.
	* sem_ch6.adb (Create_Extra_Formals): Create
	the new Extra_Accessibility_Of_Result formal if
	Needs_Result_Accessibility_Level returns True. This includes the
	introduction of a nested procedure, Check_Against_Result_Level.

From-SVN: r178567
2011-09-06 09:46:28 +02:00
Arnaud Charlet
1a982c6e28 Makefile.in (X86_TARGET_PAIRS): Remove duplicate declaration.
* gcc-interface/Makefile.in (X86_TARGET_PAIRS): Remove duplicate
	declaration.

From-SVN: r178566
2011-09-06 09:06:52 +02:00
GCC Administrator
5a80bdf9ee Daily bump.
From-SVN: r178562
2011-09-06 00:18:39 +00:00
David S. Miller
4f4f4f542a sol2-64.h: Move ...
* config/sparc/sol2-64.h: Move ...
	* config/sparc/default-64.h: ... to here.  Update comment.
	* config.gcc: Update Solaris sparc to use default-64.h, also
	prefix this header into the list on sparc64-*-linux.
	* config/sparc/linux64.h (TARGET_DEFAULT): Only override if
	TARGET_64BIT_DEFAULT is defined.  Remove commented out reference
	to MASK_HARD_QUAD.

From-SVN: r178558
2011-09-05 15:23:40 -07:00
Richard Sandiford
81a478c889 re PR target/49606 (mips64: o64 Unrecognizable insn when one noreturn function calling another noreturn function)
gcc/
	PR target/49606
	* config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
	(PMODE_INSN): New macro.
	* config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
	(mips_got_load, mips_expand_synci_loop): Likewise.
	(mips_save_gp_to_cprestore_slot): Handle SImode and DImode
	cprestore patterns.
	(mips_emit_loadgp): Use PMODE_INSN.  Handle SImode and DImode
	copygp_mips16 patterns.
	(mips_expand_prologue): Handle SImode and DImode potential_cprestore
	and use_cprestore patterns.
	(mips_override_options): Check for incompatible -mabi and -mlong
	combinations.
	* config/mips/mips.md (unspec_got<mode>): Rename to...
	(unspec_got_<mode>): ...this.
	(copygp_mips16): Use the Pmode iterator.
	(potential_cprestore, cprestore, use_cprestore): Likewise.
	(clear_cache, indirect_jump): Use PMODE_INSN.
	(indirect_jump<mode>): Rename to...
	(indirect_jump_<mode>): ...this.
	(tablejump): Use PMODE_INSN.
	(tablejump<mode>): Rename to...
	(tablejump_<mode>): ...this.
	(exception_receiver): Handle restore_gp_si and restore_gp_di.
	(restore_gp): Use the Pmode iterator.
	* config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
	PMODE_INSN.

gcc/testsuite/
	PR target/49606
	* gcc.target/mips/abi-main.h: New file.
	* gcc.target/mips/abi-o32-long32.c: New test.
	* gcc.target/mips/abi-o32-long64.c: Likewise.
	* gcc.target/mips/abi-o64-long32.c: Likewise.
	* gcc.target/mips/abi-o64-long64.c: Likewise.
	* gcc.target/mips/abi-n32-long32.c: Likewise.
	* gcc.target/mips/abi-n32-long64.c: Likewise.
	* gcc.target/mips/abi-n64-long32.c: Likewise.
	* gcc.target/mips/abi-n64-long64.c: Likewise.
	* gcc.target/mips/abi-o32-long32-no-shared.c: Likewise.
	* gcc.target/mips/abi-o32-long64-no-shared.c: Likewise.
	* gcc.target/mips/abi-o64-long32-no-shared.c: Likewise.
	* gcc.target/mips/abi-o64-long64-no-shared.c: Likewise.
	* gcc.target/mips/abi-n32-long32-no-shared.c: Likewise.
	* gcc.target/mips/abi-n32-long64-no-shared.c: Likewise.
	* gcc.target/mips/abi-n64-long32-no-shared.c: Likewise.
	* gcc.target/mips/abi-n64-long64-no-shared.c: Likewise.
	* gcc.target/mips/abi-o32-long32-pic.c: Likewise.
	* gcc.target/mips/abi-o32-long64-pic.c: Likewise.
	* gcc.target/mips/abi-o64-long32-pic.c: Likewise.
	* gcc.target/mips/abi-o64-long64-pic.c: Likewise.
	* gcc.target/mips/abi-n32-long32-pic.c: Likewise.
	* gcc.target/mips/abi-n32-long64-pic.c: Likewise.
	* gcc.target/mips/abi-n64-long32-pic.c: Likewise.
	* gcc.target/mips/abi-n64-long64-pic.c: Likewise.
	* gcc.target/mips/abi-eabi32-long32.c: Likewise.
	* gcc.target/mips/abi-eabi32-long64.c: Likewise.
	* gcc.target/mips/abi-eabi64-long32.c: Likewise.
	* gcc.target/mips/abi-eabi64-long64.c: Likewise.
	* gcc.target/mips/mips.exp: Make -mshared implied -mabicalls.
	* gcc.target/mips/branch-2.c: Remove -mabicalls.
	* gcc.target/mips/branch-3.c: Likewise.
	* gcc.target/mips/branch-4.c: Likewise.
	* gcc.target/mips/branch-5.c: Likewise.
	* gcc.target/mips/branch-6.c: Likewise.
	* gcc.target/mips/branch-7.c: Likewise.
	* gcc.target/mips/branch-8.c: Likewise.
	* gcc.target/mips/branch-9.c: Likewise.
	* gcc.target/mips/branch-10.c: Likewise.
	* gcc.target/mips/branch-11.c: Likewise.
	* gcc.target/mips/branch-12.c: Likewise.
	* gcc.target/mips/branch-13.c: Likewise.
	* gcc.target/mips/lazy-binding-1.c: Likewise.

From-SVN: r178557
2011-09-05 19:39:27 +00:00
Richard Sandiford
1ab9ec7b7f mips.c (mips_gimplify_va_arg_expr): Unshare off.
gcc/
	* config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off.
	Fix the type of the BIT_AND_EXPR.

From-SVN: r178556
2011-09-05 19:38:20 +00:00
David S. Miller
70847a486f config.gcc: Recognize niagara3 and niagara4 in --with-cpu and --with-tune options.
* config.gcc: Recognize niagara3 and niagara4 in --with-cpu
	and --with-tune options.

From-SVN: r178555
2011-09-05 09:57:00 -07:00
David S. Miller
3e64c239dd sparc-opts.h (PROCESSOR_NIAGARA3, [...]): New.
* config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3,
	PROCESSOR_NIAGARA4): New.
	* config/sparc/sparc.opt: Handle new processor types.
	* config/sparc/sparc.md: Add to "cpu" attribute.
	* config/sparc/sparc.h (TARGET_CPU_niagara3,
	TARGET_CPU_niagara4): New, treat as niagara2.
	* config/sparc/linux64.h: Handle niagara3 and niagara4
	like niagara2.
	* config/sparc/sol2.h: Likewise.
	* config/sparc/niagara2.md: Schedule niagara3 like
	niagara2.
	* config/sparc/sparc.c (sparc_option_override): Add
	niagara3 and niagara4 handling.
	(sparc32_initialize_trampoline): Likewise.
	(sparc64_initialize_trampoline): Likewise.
	(sparc_use_sched_lookahead): Likewise.
	(sparc_issue_rate): Likewise.
	(sparc_register_move_cost): Likewise.
	* config/sparc/driver-sparc.c (cpu_names): Use niagara3
	and niagara4 as appropriate.
	* doc/invoke.texi: Document new processor types.

From-SVN: r178554
2011-09-05 09:00:53 -07:00
David S. Miller
0913b2d64e config.host: Add driver-sparc.o and sparc/x-sparc on native sparc*-*-linux* builds.
* config.host: Add driver-sparc.o and sparc/x-sparc on
	native sparc*-*-linux* builds.
	* config/sparc/driver-sparc.c: Correct Linux strings.
	* config/sparc/linux.h: Add DRIVER_SELF_SPECS.
	* config/sparc/linux64.h: Likewise.
	* doc/invoke.texi: Document that Linux also supports
	-mcpu=native and -mtune=native on sparc.

From-SVN: r178553
2011-09-05 08:58:57 -07:00
Arnaud Charlet
e42bcfa38c [multiple changes]
2011-09-05  Hristian Kirtchev  <kirtchev@adacore.com>

	* s-finmas.adb (Set_Finalize_Address): Explain the reason
	for the synchronization. Move the test for null from
	s-stposu.Allocate_Any_Controlled to this routine since the check
	needs to be protected too.
	(Set_Heterogeneous_Finalize_Address): Explain the reason for the
	synchronization code.
	* s-finmas.ads (Set_Heterogeneous_Finalize_Address): Add comment
	explaining the context in which this routine is used.
	* s-stposu.adb (Allocate_Any_Controlled): Move the test for null
	to s-finmas.Set_Finalize_Address.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

	* einfo.ads: Document that itypes have no parent field.

2011-09-05  Robert Dewar  <dewar@adacore.com>

	* rtsfind.adb (Check_CRT): Check for overloaded entity
	* rtsfind.ads: Document that entities to be found by rtsfind
	cannot be overloaded
	* s-taenca.adb, s-tasren.adb, s-tpobop.adb, s-tpoben.ads, s-tpoben.adb
	(Lock_Entries_With_Status): New name for Lock_Entries with two
	arguments (changed to meet rtsfind no overloading rule).

From-SVN: r178551
2011-09-05 16:30:30 +02:00
Arnaud Charlet
544e7c17b5 [multiple changes]
2011-09-05  Hristian Kirtchev  <kirtchev@adacore.com>

	* s-finmas.adb (Set_Finalize_Address (Address,
	Finalize_Address_Ptr)): Renamed to Set_Heterogeneous_Finalize_Address.
	(Set_Finalize_Address (in out Finalization_Master,
	Finalize_Address_Ptr): Add synchronization code.
	* s-finmas.ads (Set_Finalize_Address (Address,
	Finalize_Address_Ptr)): Renamed to Set_Heterogeneous_Finalize_Address.
	* s-stposu.adb (Allocate_Any_Controlled): Update the call to
	Set_Finalize_Address for the heterogeneous case.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb: Undo previous change, not suitable after all.

2011-09-05  Robert Dewar  <dewar@adacore.com>

	* einfo.ads: Minor comment clarification.

From-SVN: r178550
2011-09-05 16:18:54 +02:00
Arnaud Charlet
0613fb3358 [multiple changes]
2011-09-05  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch6.adb (Move_Activation_Chain): Rewritten. The routine
	no longer needs to search through the entities of the return
	statement scope to find the _chain.
	* sem_ch5.adb: Add with and use clauses for Exp_Ch6 and Sem_Ch6.
	(Analyze_Block_Statement): Add local variable
	Is_BIP_Return_Statement. Add machinery to install all entities
	produced by the expansion of the return object declaration.
	(Install_Return_Entities): New routine.
	* sem_ch6.ads, sem_ch6.adb (Install_Entity): Moved from body to spec.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Analyze_Context): Apply simple fixup if context
	of subunit is incomplete.
	(Analyze_Proper_Body): If parent spec is not available, do not
	attempt analysis.

From-SVN: r178549
2011-09-05 16:15:16 +02:00
Arnaud Charlet
5dcab3ca08 [multiple changes]
2011-09-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_disp.adb (Find_Controlling_Arg): Add checks for
	interface type conversions, that are expanded into dereferences.

2011-09-05  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper):
	Examine the parameter and return profile of a subprogram and swap
	any incomplete types coming from a limited context with their
	corresponding non-limited views.
	(Exchange_Limited_Views): New routine.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Prepare_Private_Subtype_Completion): Set parent
	of internal entity to the subtype declaration, so that when
	entities are subsequently exchanged in a package body, the tree
	remains properly formatted for ASIS.

From-SVN: r178548
2011-09-05 16:12:04 +02:00
Arnaud Charlet
8da1a31296 [multiple changes]
2011-09-05  Johannes Kanig  <kanig@adacore.com>

	* g-comlin.adb (Set_Usage): Additional optional argument to set help
	message.
	(Display_Help): display the user given help message, if available.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (OK_For_Limited_Init_In_05): The expression
	is legal if the original node is an identifier that is a
	parameterless function call.

From-SVN: r178547
2011-09-05 16:08:42 +02:00
Pascal Obry
69b73847d7 prj-nmsc.adb: Minor reformatting.
2011-09-05  Pascal Obry  <obry@adacore.com>

	* prj-nmsc.adb: Minor reformatting.
	Add support for standalone aggregate library.
	(Check_Stand_Alone_Library): Handle standalone aggregate library.
	* projects.texi: Fix documentation for aggregate library projects.

From-SVN: r178546
2011-09-05 16:03:26 +02:00
Georg-Johann Lay
4e5bc13544 ipcp-3.c (mark_cell): Use mask 1 << 14 instead of 1 << 18 to avoid warning on int=16 platforms..
* gcc.dg/ipa/ipcp-3.c (mark_cell): Use mask 1 << 14 instead of 1
	<< 18 to avoid warning on int=16 platforms..

From-SVN: r178545
2011-09-05 14:00:37 +00:00
Arnaud Charlet
81bf23820f [multiple changes]
2011-09-05  Robert Dewar  <dewar@adacore.com>

	* sem_ch6.adb: Minor reformatting.

2011-09-05  Matthew Gingell  <gingell@adacore.com>

	* s-tassta.adb (Task_Wrapper): Ensure that we don't try to write the
	stack guard page on PPC Linux. This patch ensures the 64K guard page at
	the bottom of the stack is not overwritten.

From-SVN: r178544
2011-09-05 16:00:30 +02:00
Arnaud Charlet
13a0b1e8dd [multiple changes]
2011-09-05  Thomas Quinot  <quinot@adacore.com>

	* exp_intr.adb, s-tasini.adb: Minor reformatting.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Access_Definition): If an access type declaration
	appears in a child unit, the scope of whatever anonymous type
	may be generated is the child unit itself.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Expression_Function): Do not set
	Comes_From_Source on rewritten body.
	(Analyze_Subprogram_Body_Helper): Check that the original node for
	the body comes from source, when determining whether expansion
	of a protected operation is needed.

From-SVN: r178543
2011-09-05 15:58:39 +02:00
Arnaud Charlet
2042872573 [multiple changes]
2011-09-05  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb (Replace_Type): If the target of the assignment is
	a selected component and the right-hand side is a self-referential
	access, the proper prefix of the rewritten attribute is a copy
	of the left-hand side, not of its prefix.

2011-09-05  Robert Dewar  <dewar@adacore.com>

	* sem_ch5.adb: Minor reformatting.
	* sem_ch3.adb: Minor code clean up.

2011-09-05  Jose Ruiz  <ruiz@adacore.com>

	* exp_ch9.adb (Make_Initialize_Protection): The fact that
	restriction No_Dynamic_Attachment is in effect or not should
	not influence the default priority associated to a protected
	object. With this change, when the restriction is in effect (as
	is the case for the Ravenscar profile) the default priority of
	a protected object with an interrupt handler is in the range of
	interrupt priorities (Default_Interrupt_Priority) as required
	by D.3(10).

2011-09-05  Arnaud Charlet  <charlet@adacore.com>

	* a-iteint.ads: Fix header.

2011-09-05  Vincent Celier  <celier@adacore.com>

	* prj-conf.adb (Do_Autoconf): Make sure Obj_Dir always ends
	with a directory separator to avoid output such as:
	  "/path/to/objauto.cgpr" has been deleted.

From-SVN: r178542
2011-09-05 15:53:59 +02:00
Jakub Jelinek
e8b803e6e5 struct-layout-1_test.h: Decrease bitfield size to work even with -fshort-enums.
* gcc.dg/compat/struct-layout-1_test.h: Decrease bitfield size
	to work even with -fshort-enums.

From-SVN: r178540
2011-09-05 15:53:08 +02:00