Commit Graph

125663 Commits

Author SHA1 Message Date
Arnaud Charlet
aa500b7a97 [multiple changes]
2013-10-10  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.adb: Remove Integrity_Level from the node usage list.
	(Has_Option): Update the implementation to match
	the new terminology.
	(Has_Property): Renamed to Has_Option.
	(Integrity_Level): Removed.
	(Is_External_State): New routine.
	(Is_Input_Only_State): Use Has_Option to determine whether a state
	is Input_Only.	(Is_Input_State): Renamed to Is_Input_Only_State.
	(Is_Output_Only_State): Use Has_Option to determine whether
	a state is Output_Only.
	(Is_Output_State): Renamed to
	Is_Output_Only_State.
	(Is_Volatile_State): Use Has_Option to determine whether a state is
	volatile.
	(Set_Integrity_Level): Removed.
	(Write_Field8): Remove the entry for Integrity_Level.
	* einfo.ads: Remove Integrity_Level along with its documentation
	and usage in nodes.  Rename Is_Input_State to Is_Input_Only_State.
	Rename Is_Output_State to Is_Output_Only_State.  Update the
	documentation of Is_Volatile_State.  Update the node structure of
	E_Abstract_Entity.
	(Integrity_Level): Removed along with pragma Inline.
	(Is_External_State): New routine.
	(Is_Input_State): Renamed to Is_Input_Only_State.
	(Is_Output_State): Renamed to Is_Output_Only_State.
	(Set_Integrity_Level): Removed along with pragma Inline.
	* sem_prag.adb (Analyze_Pragma): Update the checks regarding
	global items and abstract state modes. Update the implementation
	of pragma Abstract_State to reflect the new rules and terminology.
	* snames.ads-tmpl: Remove the predefined name for Integrity
	level. Add new predefined names for Input_Only, Non_Volatile,
	Output_Only and Part_Of.

2013-10-10  Ed Schonberg  <schonberg@adacore.com>

	* lib-xref.adb (Generate_Reference): Do not generate a reference
	within a _postcondition procedure: a proper source reference has
	already been generated when pre- analyzing the original aspect
	specification, and the use of a formal in a pre/postcondition
	should not count as a proper use in a subprogram body.

2013-10-10  Robert Dewar  <dewar@adacore.com>

	* sem_eval.adb (Why_Non_Static): Fix bomb for deferred constant
	case

From-SVN: r203360
2013-10-10 14:24:31 +02:00
Arnaud Charlet
e7f23f0645 [multiple changes]
2013-10-10  Hristian Kirtchev  <kirtchev@adacore.com>

	* aspects.adb: Add an entry for Aspect_Refined_Post in table
	Canonical_Aspect.
	* aspects.ads: Add an entry for Aspect_Refined_Post in tables
	Aspect_Id, Aspect_Argument, Aspect_Names, Aspect_Delay,
	Aspect_On_Body_Or_Stub_OK. Update the comment on the use of
	table Aspect_On_Body_Or_Stub_OK.
	* par-prag.adb: Add pragma Refined_Post to the list of pragmas
	that do not require special processing by the parser.
	* sem_attr.adb (Analyze_Attribute): Add special analysis for
	attributes 'Old and 'Result when code generation is disabled and
	they appear in aspect/pragma Refined_Post.
	(In_Refined_Post): New routine.
	* sem_ch6.adb (Analyze_Expression_Function): Move various
	aspects and/or pragmas that apply to an expression function to the
	corresponding spec or body.
	(Collect_Body_Postconditions): New routine.
	(Process_PPCs): Use routine Collect_Body_Postconditions
	to gather all postcondition pragmas.
	* sem_ch10.adb (Analyze_Proper_Body): Use routine
	Relocate_Pragmas_To_Body to move all source pragmas that follow
	a body stub to the proper body.
	(Move_Stub_Pragmas_To_Body): Removed.
	* sem_ch13.adb (Analyze_Aspect_Specifications): Add processing
	for aspect Refined_Post.
	(Check_Aspect_At_Freeze_Point): Aspect
	Refined_Post does not need delayed processing at the freeze point.
	* sem_prag.adb: Add an entry for pragma Refined_Post in
	table Sig_Flags.
	(Analyze_Pragma): Add processing for pragma
	Refined_Post. Update the processing of pragma Refined_Pre
	to use common routine Analyze_Refined_Pre_Post.
	(Analyze_Refined_Pre_Post): New routine.
	(Relocate_Pragmas_To_Body): New routine.
	* sem_prag.ads: Table Pragma_On_Stub_OK is now known as
	Pragma_On_Body_Or_Stub_OK. Update the comment on usage of
	table Pragma_On_Body_Or_Stub_OK.
	(Relocate_Pragmas_To_Body): New routine.
	* snames.ads-tmpl: Add new predefined name for Refined_Post. Add
	new Pragma_Id for Refined_Post.

2013-10-10  Robert Dewar  <dewar@adacore.com>

	* exp_ch3.adb (Expand_N_Variant_Part): Now null, expansion of
	last choice to others is moved to Freeze_Record_Type.
	* freeze.adb (Freeze_Record_Type): Expand last variant to others
	if necessary (moved here from Expand_N_Variant_Part

From-SVN: r203359
2013-10-10 14:20:55 +02:00
Arnaud Charlet
1591837192 [multiple changes]
2013-10-10  Robert Dewar  <dewar@adacore.com>

	* lib-xref-spark_specific.adb, par-ch13.adb, sem_prag.adb, sem_prag.ads,
	sem_ch12.adb, sem_attr.adb, sem_ch6.adb, sem_ch13.adb, a-sequio.adb,
	s-atocou-builtin.adb: Minor reformatting.

2013-10-10  Thomas Quinot  <quinot@adacore.com>

	* s-oscons-tmplt.c (NEED_PTHREAD_CONDATTR_SETCLOCK): This
	constant needs to be output to s-oscons.h, as it is tested
	by init.c.

2013-10-10  Robert Dewar  <dewar@adacore.com>

	* exp_ch3.adb (Expand_N_Variant_Part): Don't expand choices, too early
	* exp_ch5.adb (Expand_N_Case_Statement): Use new Has_SP_Choice
	flag to avoid expanding choices when not necessary.
	* exp_util.adb: Minor reformatting
	* freeze.adb (Freeze_Record_Type): Redo expansion of variants
	* sem_aggr.adb: Minor reformatting
	* sem_case.ads, sem_case.adb: Major rewrite, separating Analysis and
	Checking of choices.
	* sem_ch3.adb (Analyze_Variant_Part): Rewrite to call new
	Analyze_Choices.
	* sem_ch4.adb (Analyze_Case_Expression): Call Analyze_Choices
	and Check_Choices
	* sem_ch5.adb (Analyze_Case_Statement): Call Analyze_Choices
	and Check_Choices
	* sem_util.adb: Minor reformatting
	* sinfo.ads, sinfo.adb (Has_SP_Choice): New flag.

2013-10-10  Vincent Celier  <celier@adacore.com>

	* mlib-prj.adb (Build_Library): Do not issue link dynamic
	libraries with an Rpath, if switch -R was used.

2013-10-10  Tristan Gingold  <gingold@adacore.com>

	* s-stalib.ads (Image_Index_Table_8, Image_Index_Table_16,
	Image_Index_Table_32): Remove as not used.
	* s-imgint.adb (Image_Integer): Call Set_Image_Integer and
	remove duplicated code.

From-SVN: r203358
2013-10-10 14:17:35 +02:00
Andrew MacLeod
b184c8f138 tree-flow.h: Move some prototypes to gimple.h.
2013-10-10  Andrew MacLeod  <amacleod@redhat.com>

	* tree-flow.h: Move some prototypes to gimple.h.
	(gimple_fold_indirect_ref): Move prototype to gimple-fold.h.
	* gimple.h: Relocate some prototypes from tree-flow.h
	* builtins.c (std_gimplify_va_arg_expr, build_va_arg_indirect_ref):
	Move to gimplify.c.
	* gimplify.c (gimple_fold_indirect_ref): Move to gimple-fold.c.
	(build_va_arg_indirect_ref): Relocate and make static.
	(std_gimplify_va_arg_expr): Relocate here.
	* gimple-fold.c (gimple_fold_indirect_ref): Relocate here.
	* gimple-fold.h (gimple_fold_indirect_ref): Add prototype.

From-SVN: r203357
2013-10-10 12:16:24 +00:00
Arnaud Charlet
83553466ec [multiple changes]
2013-10-10  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Provide a
	more precise error message when pragma Refined_Pre applies to
	an expression function that is not a completion.

2013-10-10  Thomas Quinot  <quinot@adacore.com>

	* sem_attr.adb (Analyse_Attribute, case
	Attribute_Scalar_Storage_Order): a 'Scalar_Storage_Order attribute
	reference for a generic type is permitted in GNAT runtime mode.
	* a-sequio.adb (Read, Write): Use the endianness of the actual
	type to encode length information written to the file.

From-SVN: r203356
2013-10-10 14:13:03 +02:00
Arnaud Charlet
e28072cdc8 [multiple changes]
2013-10-10  Ed Schonberg  <schonberg@adacore.com>

	* par-ch13.adb (Aspect_Specifications_Present)): In earlier than
	Ada2012 mode, assume that a legal aspect name following "with"
	keyword is an older gnat switch and not a misplaced with_clause.

2013-10-10  Hristian Kirtchev  <kirtchev@adacore.com>

	* aspects.adb: Add an entry for Aspect_Refined_Pre in
	table Canonical_Aspect.
	(Aspects_On_Body_OK): Renamed to
	Aspects_On_Body_Or_Stub_OK.
	(Aspects_On_Body_Or_Stub_OK):
	Update the query in table Aspect_On_Body_OK.
	* aspects.ads: Add an entry for Aspect_Refined_Pre in tables
	Aspect_Id, Aspect_Argument, Aspect_Names, Aspect_Delay,
	Aspect_On_Body_Or_Stub_OK. Table Aspect_On_Body_OK is now known as
	Aspect_On_Body_Or_Stub_OK.  Add a section of aspect specifications
	that apply to body stubs.
	(Aspects_On_Body_OK): Renamed to Aspects_On_Body_Or_Stub_OK.
	(Aspects_On_Body_Or_Stub_OK): Update the comment on usage.
	* par-prag.adb: Add pragma Refined_Pre to the list of pragmas
	that do not require special processing by the parser.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Delay the
	analysis of aspect specifications that apply to a body stub
	until the proper body is analyzed.
	* sem_ch10.adb: Add with and use clause for Sem_Ch13.
	(Analyze_Package_Body_Stub): Set the corresponding spec of the stub.
	(Analyze_Proper_Body): Relocate all pragmas that apply
	to a subprogram body stub to the declarations of the proper
	body. Analyze the aspect specifications of the stub when the
	proper body is not present.
	(Analyze_Protected_Body_Stub): Set the corresponding spec of the stub.
	(Analyze_Task_Body_Stub): Set the corresponding spec of the stub.
	(Move_Stub_Pragmas_To_Body): New routine.
	* sem_ch13.adb (Analyze_Aspect_Specifications): Add processing
	for aspect Refined_Pre.
	(Check_Aspect_At_Freeze_Point): Aspect
	Refined_Pre does not need delayed processing at the freeze point.
	* sem_prag.adb: Remove with and use clause for Snames. Add
	an entry for Pragma_Refined_Pre in table Sig_Flags.
	(Analyze_Pragma): Add processing for pragma Refined_Pre.
	* sem_prag.ads: Add with and use clause for Snames. Add table
	Pragma_On_Stub_OK.
	* sinfo.adb (Corresponding_Spec_Of_Stub): New routine.
	(Set_Corresponding_Spec_Of_Stub): New routine.
	* sinfo.ads: Add new attribute Corresponding_Spec_Of_Stub
	along with comment on usage and occurrences in nodes.
	(Corresponding_Spec_Of_Stub): New routine along with pragma
	Inline.
	(Set_Corresponding_Spec_Of_Stub): New routine along
	with pragma Inline.
	* snames.ads-tmpl: Add new predefined name for Refined_Pre. Add
	new Pragma_Id for Refined_Pre.

2013-10-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Analyze_Package_Instantiation,
	Analyze_Subprogram_Instantiation): Improve error message when
	name in instantiation does not designate a generic unit of the
	right kind.

From-SVN: r203355
2013-10-10 14:10:58 +02:00
Andreas Krebbel
13b72c22f7 md.texi: Document the mnemonic attribute.
2013-10-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* doc/md.texi: Document the mnemonic attribute.

From-SVN: r203354
2013-10-10 12:02:16 +00:00
Andreas Krebbel
5db40447b8 re PR target/57377 (compiler cannot be built with RTL checking)
2013-10-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR target/57377
	* gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and
	(set_attr_alternative x ...) when searching for user defined
	mnemonic attribute.

From-SVN: r203353
2013-10-10 12:01:23 +00:00
Andrew MacLeod
ed018d4b1f alpha.c: Add gimple-ssa.h to include list.
2013-10-10  Andrew MacLeod  <amacleod@redhat.com>

	* config/aplha/alpha.c: Add gimple-ssa.h to include list.

From-SVN: r203352
2013-10-10 11:53:55 +00:00
Arnaud Charlet
9e92ad4973 [multiple changes]
2013-10-10  Robert Dewar  <dewar@adacore.com>

	* exp_ch3.adb (Expand_N_Variant_Part): Expand statically
	predicated subtype which appears in Discrete_Choices list.
	* exp_ch5.adb (Expand_N_Case_Statement): Expand statically
	predicated subtype which appears in Discrete_Choices list of
	case statement alternative.
	* exp_util.ads, exp_util.adb (Expand_Static_Predicates_In_Choices): New
	procedure.
	* sem_case.adb: Minor reformatting (Analyze_Choices): Don't
	expand out Discrete_Choices that are names of subtypes with
	static predicates. This is now done in the analyzer so that the
	-gnatct tree is properly formed for ASIS.
	* sem_case.ads (Generic_Choices_Processing): Does not apply
	to aggregates any more, so change doc accordingly, and remove
	unneeded Get_Choices argument.
	* sem_ch3.adb (Analyze_Variant_Part): Remove no
	longer used Get_Choices argument in instantiation of
	Generic_Choices_Processing.
	* sem_ch4.adb (Analyze_Case_Expression): Remove no
	longer used Get_Choices argument in instantiation of
	Generic_Choices_Processing.
	* sem_ch5.adb (Analyze_Case_Statement): Remove no
	longer used Get_Choices argument in instantiation of
	Generic_Choices_Processing.
	* sinfo.ads: For N_Variant_Part, and N_Case_Statement_Alternative,
	document that choices that are names of statically predicated
	subtypes are expanded in the code generation tree passed to the
	back end, but not in the ASIS tree generated for -gnatct.

2013-10-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch7.adb: Revert previous change.

2013-10-10  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): In the case where
	the Storage_Pool aspect is specified by an aspect clause and a
	renaming is used to capture the evaluation of the pool name,
	insert the renaming in front of the aspect's associated entity
	declaration rather than in front of the corresponding attribute
	definition (which hasn't been appended to the declaration
	list yet).

2013-10-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Is_Interface_Conformant): The controlling type
	of the interface operation is obtained from the ultimate alias
	of the interface primitive parameter, because that may be in
	fact an implicit inherited operation whose signature involves
	the type extension and not the desired interface.

2013-10-10  Ed Schonberg  <schonberg@adacore.com>

	* par-ch13.adb (Aspect_Specifications_Present): In Ada 2012,
	recognize an aspect specification with a misspelled name if it
	is followed by a a comma or semicolon.

2013-10-10  Vadim Godunko  <godunko@adacore.com>

	* s-atocou.adb, s-atocou.ads, s-atocou-x86.adb, s-atocou-builtin.adb:
	Fix copyright notice.

2013-10-10  Yannick Moy  <moy@adacore.com>

	* lib-xref-spark_specific.adb (Enclosing_Subprogram_Or_Package): Get
	enclosing subprogram for precondition/postcondition/contract cases.

From-SVN: r203350
2013-10-10 13:07:30 +02:00
Arnaud Charlet
11d59a8683 [multiple changes]
2013-10-10  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Minor fix.

2013-10-10  Robert Dewar  <dewar@adacore.com>

	* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
	Address): Remove the Comes_From_Source test for the overlap
	warning.

2013-10-10  Robert Dewar  <dewar@adacore.com>

	* sem_util.adb: Minor code reorganization (use Nkind_In).
	* sem_warn.adb: Minor code reorganization (optimization in
	Check_Unset_Reference).
	* exp_ch9.adb, exp_ch4.adb, sinfo.ads: Minor reformatting.

2013-10-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch7.adb (Install_Parent_Private_Declarations): When
	instantiating a child unit, do not install private declaration of
	a non-generic ancestor of the generic that is also an ancestor
	of the current unit: its private part will be installed when
	private part of ancestor itself is analyzed.

2013-10-10  Thomas Quinot  <quinot@adacore.com>

	* freeze.adb (Check_Component_Storage_Order): Retrieve component
	aliased status from type entities directly instead of going back
	to original component definition.
	* sem_ch7.adb: Minor reformatting.

From-SVN: r203349
2013-10-10 13:01:42 +02:00
Arnaud Charlet
27a8f15020 [multiple changes]
2013-10-10  Robert Dewar  <dewar@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications): For Address
	attribute, consider it to be set in source, because of aliasing
	considerations.
	(Analyze_Attribute_Definition_Clause): For the
	purpose of warning on overlays, take into account the aspect case.

2013-10-10  Robert Dewar  <dewar@adacore.com>

	* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
	a-cofove.ads: Minor reformatting.

2013-10-10  Arnaud Charlet  <charlet@adacore.com>

	* gnat_ugn.texi: Remove obsolete mention to -laddr2line.

2013-10-10  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch4.adb (Expand_N_Case_Expression):  Indicate that the
	generated variable used as a target of the expression needs
	no initialization.

2013-10-10  Jose Ruiz  <ruiz@adacore.com>

	* exp_util.adb (Corresponding_Runtime_Package): Remove the condition
	related to No_Dynamic_Attachment which was wrong. Protected types
	with interrupt handlers (when not using a restricted profile)
	are always treated as protected types with entries, regardless
	of the No_Dynamic_Attachment restriction.
	* exp_ch9.adb (Expand_N_Protected_Type_Declaration): Simplify the code
	using the result of Corresponding_Runtime_Package.
	(Install_Private_Data_Declarations): When having
	static handlers and a non restricted profile, we use the
	type Static_Interrupt_Protection always, so we removed an
	extra wrong condition looking at the No_Dynamic_Attachment
	restriction. Simplify the code using the result of
	Corresponding_Runtime_Package.
	(Make_Initialize_Protection): Simplify the code using
	the result of Corresponding_Runtime_Package.
	(Install_Private_Data_Declaration): The No_Dynamic_Attachment
	restriction has nothing to do with static handlers. Remove the extra
	erroneous condition that was creating the wrong data type.

2013-10-10  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_util.adb (Is_Object_Reference): Attribute
	'Old produces an object reference.
	* gnat_rm.texi: Define accessibility level of
	X'Update(...) result.

From-SVN: r203348
2013-10-10 12:59:13 +02:00
Arnaud Charlet
2fc0728559 [multiple changes]
2013-10-10  Yannick Moy  <moy@adacore.com>

	* gnat_rm.texi, a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
	a-cforse.ads, a-cofove.ads: Update comment and doc of formal containers

2013-10-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications): For Pre/Post
	conditions that apply to a subprogram body, preserve the placement
	and order of the generated pragmas, which must appear before
	other declarations in the body.

From-SVN: r203347
2013-10-10 12:55:36 +02:00
Arnaud Charlet
c1645ac876 [multiple changes]
2013-10-10  Bob Duff  <duff@adacore.com>

	* gnat_ugn.texi: Add gnat2xml doc.

2013-10-10  Doug Rupp  <rupp@adacore.com>

	* s-vxwork-arm.ads: Fix interface to FP_CONTEXT.

2013-10-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specification): An aspect Import
	on a variable need not have a convention specified, as long as
	the implicit convention of the object, obtained from its type,
	is Ada or Ada-related.

2013-10-10  Robert Dewar  <dewar@adacore.com>

	* cstand.adb (Standard_Unsigned_64): New internal type.
	* gnat_rm.texi: Update documentation on To_Address.
	* sem_attr.adb (Analyze_Attribute, case To_Address): Fix
	problem with out of range static values given as literals or
	named numbers.
	* stand.ads (Standard_Unsigned_64): New internal type.
	* stand.adb: Minor reformatting.

From-SVN: r203346
2013-10-10 12:53:30 +02:00
Arnaud Charlet
f0e7963fb9 [multiple changes]
2013-10-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Selected_Component,
	Has_Mode_Conformant_Spec): If selected component may be an
	indexing of a parameterless call to a protected function, and
	expansion is disabled, this is a valid candidate interpretation.

2013-10-10  Arnaud Charlet  <charlet@adacore.com>

	* gnat_ugn.texi: Minor editing.

From-SVN: r203345
2013-10-10 12:50:15 +02:00
Arnaud Charlet
0c5dba7ff5 [multiple changes]
2013-10-10  Robert Dewar  <dewar@adacore.com>

	* gnatlink.adb: Minor reformatting.

2013-10-10  Yannick Moy  <moy@adacore.com>

	* debug.adb: Free flag d.E and change doc for flag d.K.

2013-10-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Check_Precondition_Postcondition): If the
	pragma comes from an aspect spec, and the subprogram is a
	library unit, treat as a ppc in a declarative part in ASIS mode,
	so that expression in aspect is properly analyzed. In this case
	there is no later point at which the aspect specification would
	be examined.

2013-10-10  Bob Duff  <duff@adacore.com>

	* opt.ads: Minor comment fix.

2013-10-10  Vadim Godunko  <godunko@adacore.com>

	* a-coinho-shared.ads, a-coinho-shared.adb: New file.
	* s-atocou.ads: Add procedure to initialize counter.
	* s-atocou.adb: Likewise.
	* s-atocou-builtin.adb: Likewise.
	* s-atocou-x86.adb: Likewise.
	* gcc-interface/Makefile.in: Select special version of
	Indefinite_Holders package on platforms where atomic built-ins
	are supported. Update tools target pairs for PikeOS.

From-SVN: r203344
2013-10-10 12:47:59 +02:00
Arnaud Charlet
cd38efa560 [multiple changes]
2013-10-10  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb: Minor reformatting.

2013-10-10  Robert Dewar  <dewar@adacore.com>

	* sinput-c.adb (Load_File): Ensure Source_Align alignment.
	* sinput-d.adb (Create_Debug_Source): Ensure Source_Align alignment.
	* sinput-l.adb (Create_Instantiation_Source): Ensure Source_Align
	alignment.
	(Load_File): Ditto.
	* sinput.ads, sinput.adb (Get_Source_File_Index): New optimized (single
	line) version.
	* types.ads (Source_Align): New definition.
	(Source_Buffer): Document new alignment requirement.

2013-10-10  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case Linker_Section): Allow
	this for types.

2013-10-10  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Minor adjustment to doc for To_Address attribute.

2013-10-10  Vadim Godunko  <godunko@adacore.com>

	* s-stopoo.ads (Root_Storage_Pool): Add pragma
	Preelaborable_Initialization.

From-SVN: r203343
2013-10-10 12:37:53 +02:00
Ian Lance Taylor
d6394e2bbc compiler: Fix test for constant argument too large for make.
From-SVN: r203338
2013-10-10 03:51:11 +00:00
Ian Lance Taylor
3d317d48a7 compiler: Don't inherit logical operator operand type from context.
From-SVN: r203337
2013-10-10 03:28:22 +00:00
GCC Administrator
156dbd1552 Daily bump.
From-SVN: r203335
2013-10-10 00:16:52 +00:00
Ian Lance Taylor
e7d9342c7b compiler: A type conversion of a constant is not always a constant.
From-SVN: r203332
2013-10-10 00:04:23 +00:00
Ian Lance Taylor
215552adac compiler, runtime: Fix complex division of NaN / 0.
From-SVN: r203331
2013-10-09 22:31:15 +00:00
Easwaran Raman
4d5b5e9f2c params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...
2013-10-09  Easwaran Raman <eraman@google.com>

        * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...
        * cfgexpand.c (defer_stack_allocation): ...use here
        * doc/invoke.texi: Add documentation for min-size-for-stack-sharing.

From-SVN: r203330
2013-10-09 21:07:54 +00:00
Zhenqiang Chen
c9ef86a171 tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.
* tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.
	(operand_equal_for_value_replacement): New function, extracted from
	value_replacement and enhanced to catch more cases.
	(value_replacement): Use operand_equal_for_value_replacement.

	* gcc.dg/tree-ssa/phi-opt-11.c: New test.

From-SVN: r203327
2013-10-09 12:57:14 -06:00
Jonathan Wakely
fd673f296a 58659.cc: Use VERIFY instead of aborting.
* testsuite/20_util/shared_ptr/cons/58659.cc: Use VERIFY instead of
	aborting.

From-SVN: r203325
2013-10-09 19:37:26 +01:00
Andrew MacLeod
2431114fa0 loop-doloop.c (doloop_modify, [...]): Use get_max_loop_iterations.
* loop-doloop.c (doloop_modify, doloop_optimize): Use 
	get_max_loop_iterations.

From-SVN: r203324
2013-10-09 15:35:46 +00:00
Marek Polacek
830ce0a2b3 re PR c++/58635 ([c++11] ICE with __transaction_atomic and noexcept(false))
PR c++/58635
cp/
	* semantics.c (finish_return_stmt): Return error_mark_node
	when error_operand_p of the expr is true.
	(build_transaction_expr): Check for EXPR_P before setting the
	expr location.
testsuite/
	* g++.dg/tm/pr58635-1.C: New test.
	* g++.dg/tm/pr58635-2.C: New test.

From-SVN: r203323
2013-10-09 14:51:28 +00:00
Kyrylo Tkachov
1dd2a9a0f3 aarch-common.c (arm_early_load_addr_dep): Place comment above function.
[gcc/]
2013-10-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/aarch-common.c (arm_early_load_addr_dep):
	Place comment above function.

From-SVN: r203322
2013-10-09 14:27:47 +00:00
Marcus Shawcroft
57b4899877 Fix unprototyped abort() introduced in libstdc++/58659.cc testcase.
From-SVN: r203321
2013-10-09 14:26:52 +00:00
Andrew MacLeod
c1bf2a39b3 tree-flow.h: Remove all remaining prototypes...
* tree-flow.h: Remove all remaining prototypes, enums and structs that
	are not related to tree-cfg.c.
	* tree-ssa-address.h: New file.  Relocate prototypes.
	* tree-ssa-address.c: (struct mem_address): Relocate from tree-flow.h.
	(addr_for_mem_ref): New.  Combine call to get_address_description and
	return addr_for_mem_ref.
	* expr.c (expand_expr_real_1): Use new addr_for_mem_ref routine.
	* tree-ssa-live.h: Adjust prototypes.
	* passes.c: Include tree-ssa-live.h.
	* gimple-pretty-print.h (gimple_dump_bb): Add prototype.
	* graphite.c (graphite_transform_loops): Make static.
	(graphite_transforms, gate_graphite_transforms, pass_data_graphite,
	make_pass_graphite, pass_data_graphite_transforms, 
	make_pass_graphite_transforms): Relocate here from tree-ssa-loop.c.
	* ipa-pure-const.c (warn_function_noreturn): Make static.
	(execute_warn_function_noreturn, gate_warn_function_noreturn,
	class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
	Relocate from tree-cfg.c
	* tree-cfg.c (tree_node_can_be_shared, gimple_empty_block_p): Make
	static.
	(execute_warn_function_noreturn, gate_warn_function_noreturn,
	class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
	Move to ipa-pure-const.c.
	(execute_fixup_cfg, class pass_fixup_cfg, make_pass_fixup_cfg): Relocate
	from tree-optimize.c.
	* tree-optimize.c (execute_fixup_cfg, class pass_fixup_cfg,
	make_pass_fixup_cfg): Move to tree-cfg.c.
	* tree-chrec.h: (enum ev_direction): Relocate here from tree-flow.h.
	Relocate some prototypes.
	* tree-data-ref.h (tree_check_data_deps) Add prototype.
	* tree-dump.c (dump_function_to_file): Remove prototype.
	Add tree-flow.h to the include file.
	* tree-dump.h: Remove prototype.
	* tree-parloops.h: New File.  Add prototypes.
	* tree-parloops.c (gate_tree_parallelize_loops, tree_parallelize_loops,
	pass_data_parallelize_loops,  make_pass_parallelize_loops): Relocate
	from tree-ssa-loop.c.
	* tree-predcom.c (run_tree_predictive_commoning,
	gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom):
	Relocate here from tree-ssa-loop.c.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize) Don't call 
	ssa_name_values.release ().
	* tree-ssa-threadedge.h: New File.  Relocate prototypes here.
	(ssa_name_values): Relocate from tree-flow.h.
	* tree-ssa.h: Include tree-ssa-threadedge.h and tree-ssa-address.h.
	* tree-ssa-loop.c (run_tree_predictive_commoning,
	gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom,
	graphite_transforms, gate_graphite_transforms, pass_data_graphite,
	make_pass_graphite, pass_data_graphite_transforms,
	make_pass_graphite_transforms, gate_tree_parallelize_loops,
	tree_parallelize_loops, pass_data_parallelize_loops,
	make_pass_parallelize_loops): Move to other files.
	* tree-vectorizer.h (lpeel_tree_duplicate_loop_to_edge_cfg): Prototype
	moved here.
	* tree.h: Remove prototypes from tree-address.c.

From-SVN: r203320
2013-10-09 14:11:30 +00:00
Jakub Jelinek
428e041efe * gcc.dg/vect/bb-slp-31.c: Add cleanup-tree-dump.
From-SVN: r203319
2013-10-09 15:55:59 +02:00
Andrew MacLeod
cc524fc7b8 tree-flow.h (tm_restart_node, gimple_df): Move to gimple-ssa.h.
* tree-flow.h (tm_restart_node, gimple_df): Move to gimple-ssa.h.
	(struct int_tree_map): Move to tree-hasher.h
	(SCALE, LABEL, PERCENT): Move to gimple.h
	* tree-flow-inline.h: Delete.  Move functions to other files.
	(unmodifiable_var_p, ref_contains_array_ref): Unused, so delete.
	* gimple-ssa.h (tm_restart_node, gimple_df): Relocate from tree-flow.h.
	(gimple_in_ssa_p, gimple_vop): Relocate from tree-flow-inline.h
	* gimple.h (imple_stmt_max_uid, set_gimple_stmt_max_uid,
	inc_gimple_stmt_max_uid, get_lineno): Relocate from tree-flow-inline.h.
	(SCALE, LABEL, PERCENT): Relocate from tree-flow.h
	* tree-hasher.h: Don't include tree-flow.h.
	(struct int_tree_map): Relocate from tree-flow.h.
	* tree-sra.c (contains_view_convert_expr_p): Relocate from
	tree-flow-inline.h and make static.
	* tree-ssa-alias.h (ranges_overlap_p): Relocate from tree-flow-inline.h.
	* tree-ssa-operands.c (gimple_ssa_operands): Relocate from
	tree-flow-inline.h and make static.
	* tree.h (is_global_var, may_be_aliased): Relocate from
	tree-flow-inline.h.
	* Makefile.in (GTFILES): Remove tree-flow.h and add gimple-ssa.h.
	* value-prof.c: No longer include tree-flow-inline.h.
	* tree-switch-conversion.c: No longer include tree-flow-inline.h.

From-SVN: r203318
2013-10-09 13:42:17 +00:00
Andrew MacLeod
713438778b tree-flow.h: Move some protoypes.
* tree-flow.h: Move some protoypes.  Include new tree-ssa-loop.h.
	(struct affine_iv, struct tree_niter_desc): Move to tree-ssa-loop.h.
	(enum move_pos): Move to tree-ssa-loop-im.h
	* cfgloop.h: Move some prototypes.
	(gcov_type_to_double_int): relocate from tree-ssa-loop.niter.c.
	* tree-flow-inline.h (loop_containing_stmt): Move to tree-ssa-loop.h.
	* tree-ssa-loop.h: New File.  Include other tree-ssa-loop-*.h files.
	(struct affine_iv, struct tree_niter_desc): Relocate from tree-flow.h.
	(loop_containing_stmt): Relocate from tree-flow-inline.h.
	* tree-ssa-loop-ch.c: (do_while_loop_p): Make static.
	* tree-ssa-loop-im.c (for_each_index): Move to tree-ssa-loop.c.
	(enum move_pos): Relocate here.
	(lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): Move to
	tree-ssa-loop.c.
	(execute_sm_if_changed_flag_set): Change get_lsm_tmp_name call.
	(tree_ssa_loop_im, gate_tree_ssa_loop_im, pass_data_lim, make_pass_lim):
	Relocate here from tree-ssa-loop.c.
	* tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Move to 
	tree-ssa-loop.c.
	(loop_edge_to_cancel, unloop_loops): Make static.
	(tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
	make_pass_iv_canon): Relocate from tree-ssa-loop.c.
	(tree_complete_unroll, gate_tree_complete_unroll,
	pass_data_complete_unroll, make_pass_complete_unroll): Relocate here.
	(tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
	pass_data_complete_unrolli, make_pass_complete_unrolli): Relocate here.
	* tree-ssa-loop-ivopts.c: Remove local prototypes.
	(stmt_invariant_in_loop_p): Remove unused function.
	* tree-ssa-loop-ivopts.h: New file.  Add prototypes.
	* tree-ssa-loop-manip.h: New file.  Add prototypes.
	* tree-ssa-loop-niter.c (record_niter_bound): Move to cfgloop.c.
	(gcov_type_to_double_int): Move to cfgloop.h.
	(double_int_cmp, bound_index,
	estimate_numbers_of_iterations_loop): Make static.
	(estimated_loop_iterations): Factor out get_estimated_loop_iterations.
	(max_loop_iterations): Factor out get_max_loop_iterations.
	(estimated_loop_iterations_int, max_stmt_executions_int): Move to
	cfgloop.c.
	* tree-ssa-loop-niter.h: New file.  Add prototypes.
	* tree-ssa-loop-prefetch.c (tree_ssa_loop_prefetch,
	gate_tree_ssa_loop_prefetch, pass_data_loop_prefetch,
	make_pass_loop_prefetch): Relocate from tree-ssa-loop.c.
	* tree-ssa-loop-unswitch.c (tree_ssa_loop_unswitch,
	gate_tree_ssa_loop_unswitch, pass_data_tree_unswitch,
	make_pass_tree_unswitch): Relocate from tree-ssa-loop.c.
	* tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im,
	pass_data_lim, make_pass_lim): Move to tree-ssa-loop-im.c.
	(tree_ssa_loop_unswitch, gate_tree_ssa_loop_unswitch,
	pass_data_tree_unswitch, make_pass_tree_unswitch): Move.
	(tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
	make_pass_iv_canon, tree_complete_unroll, gate_tree_complete_unroll,
	pass_data_complete_unroll, make_pass_complete_unroll,
	tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
	pass_data_complete_unrolli, make_pass_complete_unrolli): Move to
	tree-ssa-loop-ivcanon.c.
	(tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
	pass_data_loop_prefetch, make_pass_loop_prefetch): Move to
	tree-ssa-loop-prefetch.c.
	(for_each_index, lsm_tmp_name_add, gen_lsm_tmp_name): Relocate from
	tree-ssa-loop-im.c.
	(get_lsm_tmp_name): Relocate and add suffix parameter.
	(tree_num_loop_insns): Relocate from tree-ssa-ivcanon.c.
	* tree-scalar-evolution.h (simple_iv): Don't use affive_iv typedef.
	* cfgloop.c (record_niter_bound, estimated_loop_iterations_int,
	max_stmt_executions_int): Move from tree-ssa-loop-niter.c.
	(get_estimated_loop_iterations): Factor out accessor from 
	estimated_loop_iterations in tree-ssa-loop-niter.c.
	(get_max_loop_iterations): Factor out accessor from _max_loop_iterations
	in tree-ssa-niter.c.
	* loop-unroll.c (decide_unroll_constant_iterations,
	decide_unroll_runtime_iterations, decide_peel_simple,
	decide_unroll_stupid): Use new get_* accessors.

From-SVN: r203317
2013-10-09 13:09:23 +00:00
Marc Glisse
826cacfe24 re PR c/20318 (RFE: add attribute to specify that a function never returns NULL)
2013-10-09  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/20318
gcc/c-family/
	* c-common.c (handle_returns_nonnull_attribute): New function.
	(c_common_attribute_table): Add returns_nonnull.

gcc/
	* doc/extend.texi (returns_nonnull): New function attribute.
	* fold-const.c (tree_expr_nonzero_warnv_p): Look for returns_nonnull
	attribute.
	* tree-vrp.c (gimple_stmt_nonzero_warnv_p): Likewise.
	(stmt_interesting_for_vrp): Accept all GIMPLE_CALL.

gcc/testsuite/
	* c-c++-common/pr20318.c: New file.
	* gcc.dg/tree-ssa/pr20318.c: New file.

From-SVN: r203316
2013-10-09 13:03:13 +00:00
Eric Botcazou
378f8976f2 re PR middle-end/58570 (wrong code for bitfields at -O2 and above)
PR middle-end/58570
	* tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Return
	false if both components are bitfields.

From-SVN: r203315
2013-10-09 12:59:02 +00:00
Alex Velenko
0fe04f5c31 [AArch64] Implement vclz ADVSimd intrinsic.
From-SVN: r203314
2013-10-09 12:09:11 +00:00
Alex Velenko
bed9bae4f0 [AArch64] Implement vadd_f64 and vsub_f64 ADVSimd intrinsics.
From-SVN: r203313
2013-10-09 11:59:38 +00:00
Alex Velenko
7f3d8b1948 [AArch64] Implemented vdiv_f64 ADVSimd intrinsic.
From-SVN: r203312
2013-10-09 11:51:15 +00:00
Alex Velenko
7df625a616 [AArch64] vneg ADVSimd intrinsics rewritten in C.
From-SVN: r203310
2013-10-09 11:05:15 +00:00
Renlin Li
2b86fca733 arm.c (arm_output_mi_thunk): Use plus_constant.
[gcc/]
2013-10-09  Renlin Li  <Renlin.Li@arm.com>

	* config/arm/arm.c (arm_output_mi_thunk): Use plus_constant.

From-SVN: r203309
2013-10-09 10:51:39 +00:00
Andreas Krebbel
e179df8301 s390.c (s390_register_info_stdarg_fpr): Remove packed stack special handling.
2013-10-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_register_info_stdarg_fpr): Remove
	packed stack special handling.
	(s390_frame_info, s390_emit_prologue, s390_emit_epilogue): Switch
	back to fixed stack slots for FPRs saved due to stdarg.

From-SVN: r203305
2013-10-09 07:24:35 +00:00
Andreas Krebbel
74129172c6 s390.c (s390_frame_info): Restructure function.
2013-10-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_frame_info): Restructure function.

From-SVN: r203304
2013-10-09 07:23:53 +00:00
Andreas Krebbel
6455a49ed4 s390.c (struct s390_frame_layout): New field gpr_save_slots.
2013-10-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (struct s390_frame_layout): New field
	gpr_save_slots.
	(cfun_save_arg_fprs_p, cfun_gpr_save_slot): New macros.
	(s390_reg_clobbered_rtx, s390_regs_ever_clobbered): Change type of
	regs_ever_clobbered to char*.
	(s390_regs_ever_clobbered): Check crtl->saves_all_registers
	instead of cfun->has_nonlocal_label.  Ignore frame related restore
	INSNs.
	(s390_register_info): Enable FPR save slots.  Move/Copy some
	functionality into ...
	(s390_register_info_gprtofpr, s390_register_info_stdarg_fpr)
	(s390_register_info_stdarg_gpr, s390_optimize_register_info): New
	function.
	(s390_frame_info): Do gpr slot allocation here now.  stdarg does
	not imply a stack frame.
	(s390_init_frame_layout): Remove variable clobbered_regs.
	(s390_update_register_info): Remove function.
	(s390_hard_regno_rename_ok): Call-saved regs without a save slot
	cannot be used for register renaming.
	(s390_hard_regno_scratch_ok): New function.
	(TARGET_HARD_REGNO_SCRATCH_OK): Define target hook.
	(s390_initial_elimination_offset): Change offset calculation of
	the return address pointer.
	(save_gprs): Deal with only r6 being saved from the call-saved
	regs.
	(restore_gprs): Set frame related flag.
	(s390_save_gprs_to_fprs, s390_restore_gprs_from_fprs): New
	functions.
	(s390_emit_prologue): Call s390_register_info instead of
	s390_update_frame_layout.  Call s390_save_gprs_to_fprs.
	(s390_emit_epilogue): Call s390_restore_gprs_from_fprs.
	(s390_optimize_prologue): Call s390_optimize_register_info.
	Try to remove also FPR slot save/restore INSNs.  Remove frame
	related flags from restore INSNs.

From-SVN: r203303
2013-10-09 07:22:52 +00:00
DJ Delorie
0dc7adad7e rl78-expand.md (movqi): use operands[] not operandN.
* config/rl78/rl78-expand.md (movqi): use operands[] not operandN.
(movhi): Likewise.

From-SVN: r203300
2013-10-08 21:44:31 -04:00
DJ Delorie
59d96342ac rl78.c (rl78_print_operand_1): Change %c to %C to avoid conflict with the MI use of %c.
* config/rl78/rl78.c (rl78_print_operand_1): Change %c to %C to
avoid conflict with the MI use of %c.
* config/rl78/rl78-real.md: change %c to %C throughout.
* config/rl78/rl78-virt.md: Likewise.

From-SVN: r203299
2013-10-08 21:05:07 -04:00
GCC Administrator
a21a0e9ae0 Daily bump.
From-SVN: r203298
2013-10-09 00:16:54 +00:00
Ian Lance Taylor
7af190f113 runtime: Do not report thunks and recover functions in backtrace.
From-SVN: r203294
2013-10-09 00:02:14 +00:00
Ian Lance Taylor
8ae4c35c1e compiler: Error for qualified ID as field name in struct literal.
From-SVN: r203292
2013-10-08 23:54:15 +00:00
Jan Hubicka
a81169d8fa i386.c (ix86_option_override_internal): Switch to SSE math for -ffast-math when target ISA supports SSE2.
* config/i386/i386.c (ix86_option_override_internal): Switch
	to SSE math for -ffast-math when target ISA supports SSE2.

From-SVN: r203291
2013-10-08 23:33:34 +00:00
Paolo Carlini
c80217c9fa re PR c++/58568 ([c++11] ICE with lambda in invalid template variable definition)
/cp
2013-10-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58568
	* lambda.c (begin_lambda_type): Check return value of xref_tag
	for error_mark_node; tidy.
	* decl.c (grokdeclarator): Tweak error message.

/testsuite
2013-10-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58568
	* g++.dg/cpp0x/lambda/lambda-ice10.C: New.
	* g++.old-deja/g++.mike/misc9.C: Adjust.

From-SVN: r203289
2013-10-08 21:58:58 +00:00