* env.c (parse_bind_var): Initialize value to avoid
	(false positive) warning.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203514 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58640
	* gcc.c-torture/execute/pr58640-2.c: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203516 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-14  Richard Biener  <rguenther@suse.de>

	PR middle-end/58712
	PR middle-end/55358
	* gimple.c (iterative_hash_canonical_type): Make sure to
	record the hash into the correct hashtable slot.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203517 138bc75d-0d04-0410-961f-82ee72b054a4
	PR bootstrap/58509
	* config/sparc/sparc-protos.h (widen_mem_for_ldd_peep): Declare.
	(registers_ok_for_ldd_peep): Move around.
	* config/sparc/sparc.c (widen_mem_for_ldd_peep): New.
	* config/sparc/sparc.md (widening peepholes): Use it.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203518 138bc75d-0d04-0410-961f-82ee72b054a4
	PR target/58716
	* config/msp430/msp430.c (msp430_option_override): Correct thinko
	scanning for msp430x targets.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203520 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-14  Richard Biener  <rguenther@suse.de>

	* gimple.c (gimple_canonical_types, canonical_type_hash_cache,
	iterative_hash_canonical_type, gimple_canonical_type_hash,
	gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
	gimple_register_canonical_type, print_gimple_types_stats,
	free_gimple_type_tables): Move to lto/lto.c
	(gt-gimple.h): Do not include.
	* gimple.h (gimple_register_canonical_type,
	print_gimple_types_stats, free_gimple_type_tables): Remove.
	* Makefile.in (GTFILES): Remove gimple.c.

	lto/
	* lto-lang.c (lto_init): Do not re-init canonical types here.
	(lto_register_canonical_types): Move to ...
	* lto.c (lto_register_canonical_types): ... here.
	(gimple_canonical_types, canonical_type_hash_cache,
	iterative_hash_canonical_type, gimple_canonical_type_hash,
	gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
	gimple_register_canonical_type): Add canonical type merging machinery
	moved from gimple.c.
	(read_cgraph_and_symbols): Init and free canonical type tables
	here.
	(print_lto_report_1): Report canonical type table stats here.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203521 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* aspects.adb: Add an entry in table Canonical_Aspect for
	Initializes.
	* aspects.ads: Add entries in tables Aspect_Id, Aspect_Argument,
	Aspect_Names and Aspect_Delay for Initializes.
	* atree.ads, atree.adb (Ekind_In): New seven argument versions of the
	routines.
	* einfo.adb: Remove Refined_State_Pragma from the list of node
	usage. Finalizer is now at position 28.
	(Contract): Package
	and package bodies now have a contract.
	(Finalizer): Update
	the assertion and node usage.
	(Get_Pragma): Update the Is_CDG
	flag to include Abstract_State, Initializes and Refined_State.
	(Refined_State_Pragma): Removed.
	(Set_Contract): Package and
	package bodies now have a contract.
	(Set_Finalizer): Update the
	assertion and node usage.
	(Set_Refined_State_Pragma): Removed.
	(Write_Field8_Name): Remove the output for Refined_State_Pragma.
	(Write_Field24_Name): Remove the output for Finalizer. Package
	and package bodies now have a contract.
	(Write_Field28_Name):
	Add output for Finalizer.
	* einfo.ads: Update the documentation and usage in entities
	of attribute Contract. Update the node position and usage in
	entities of attribute Finalizer. Remove the documentation
	and usage in entities for attribute Refined_State_Pragma.
	(Refined_State_Pragma): Removed along with pragma Inline.
	(Set_Refined_State_Pragma): Removed along with pragma Inline.
	* par-prag.adb: Add Initializes to the pragmas that do not
	require special processing by the parser.
	* sem_ch3.adb (Analyze_Declarations): Add local variable
	Prag. Update the retrieval of pragma Refined_State. Analyze
	aspect/pragma Initializes at the end of the visible declarations
	of the related package.
	* sem_ch6.adb (Analyze_Subprogram_Body_Contract):
	Add local variables Ref_Depends and Ref_Global. Analyze
	pragmas Refined_Global and Refined_Depends in that order.
	(Analyze_Subprogram_Contract): Add local variables Depends and
	Global. Analyze pragmas Global and Depends in that order.
	* sem_ch7.adb (Analyze_Package_Body_Helper): Package
	bodies now have a contract. Move the analysis of the aspect
	specifications after the defining entity has been decorated.
	(Analyze_Package_Declaration): Packages now have a contract. Move
	the analysis of the aspect specifications after the defining
	entity has been decorated.
	* sem_ch12.adb (Analyze_Generic_Package_Declaration): Packages
	now have contracts.
	* sem_ch13.adb (Analyze_Pragma): Code cleanup for aspect
	Abstract_State. Add processing for aspect Initializes.
	(Check_Aspect_At_Freeze_Point): Add an entry for Initializes.
	* sem_prag.adb: Use Get_Pragma_Arg to extract the expression
	of a pragma argument. Add an entry in table Sig_Flags for
	Initializes.
	(Analyze_Initializes_In_Decl_Part): New routine.
	(Analyze_Pragma): Check the declaration order of pragmas
	Abstract_State and Initializes. Abstract_State is now part of
	the package contract. Analyze pragma Initializes. Check for
	duplicate Refined_State pragma. Refined_State is now part of
	the package contract.
	(Check_Declaration_Order): New routine.
	(Check_Test_Case): Alphabetized.
	* sem_prag.ads (Analyze_Initializes_In_Decl_Part): New routine.
	* sem_util.adb (Add_Contract_Item): Rename formal Subp_Id
	to Id. This routine can now support contracts on packages and
	package bodies.
	* sem_util.ads (Add_Contract_Item): Rename formal Subp_Id to
	Id. Update comment on usage.
	* sinfo.ads: Update the usage of N_Contract nodes.
	* snames.ads-tmpl: Add predefined name Initializes. Add new
	pragma id for Initializes.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203522 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Analyze_Global_Item): Allow
	references to enclosing formal parameters.

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

	* einfo.adb (Equivalent_Type): Add missing case
	E_Access_Subprogram_Type in guard (for remote access to
	subprograms) * sem_ch8.adb (Find_Direct_Name, Find_Expanded_Name):
	Add missing guards to account for the presence of RAS types
	that have already been replaced with the corresponding fat
	pointer type.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203523 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-14  Robert Dewar  <dewar@adacore.com>

	* exp_prag.adb (Expand_Pragma_Check): Generate proper string
	for invariant
	* gnat_rm.texi: Add documentation for pragmas
	Type_Invariant[_Class]
	* par-prag.adb: Add entries for pragmas Type_Invariant[_Class]
	* sem_ch13.adb: Minor reformatting
	* sem_prag.adb: Implement pragmas Type_Invariant[_Class]
	* snames.ads-tmpl: Add entries for pragmas Type_Invariant[_Class]

2013-10-14  Johannes Kanig  <kanig@adacore.com>

	* debug.adb: Release now unused debug switches that were only
	relevant for gnat2why backend, not the frontend
	* frontend.adb (Frontend) Do not stop when -gnatd.H is present,
	was unused



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203524 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Analyze_Global_In_Decl_Part): Remove local
	variable Contract_Seen. Add local variable Proof_Seen.
	(Analyze_Global_List): Remove the processing for mode
	Contract_In. Add support for mode Proof_In.
	(Analyze_Pragma): Update the grammar of pragmas Global and
	Refined_Global.
	* snames.ads-tmpl: Remove predefined name Contract_In. Add
	predefined name Proof_In.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203525 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.adb: Flag263 is now known as Has_Null_Refinement.
	(Has_Null_Refinement): New routine.
	(Set_Has_Null_Refinement): New routine.
	(Write_Entity_Flags): Output the status of flag
	Has_Null_Refinement.
	* einfo.ads: Add new flag Has_Null_Refinement along with
	comment on usage and update all nodes subject to the flag.
	(Has_Null_Refinement): New routine along with pragma Inline.
	(Set_Has_Null_Refinement): New rouitine along with pragma Inline.
	* sem_prag.adb (Analyze_Constituent): Mark a state as having
	a null refinement when the sole constituent is "null".
	(Analyze_Global_List): Handle null input/output items.
	(Analyze_Refined_Global_In_Decl_Part): Add local variable
	Has_Null_State. Add logic to handle combinations of states
	with null refinements and null global lists and/or items.
	(Check_In_Out_States, Check_Input_States, Check_Output_States):
	Use attribute Has_Null_Refinement to detect states with
	constituents.
	(Check_Refined_Global_List): Handle null input/output items.
	(Process_Global_Item): Handle states with null refinements.
	(Process_Global_List): Handle null input/output items.

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

	* freeze.adb (Freeze_Entity): Reset Is_True_Constant for
	aliased object
	* gnat_ugn.texi: Update doc on aliased variables and constants.

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

	* exp_pakd.adb (Expand_Packed_Element_Reference): If the
	reference is an actual in a call, the prefix has not been fully
	expanded, to account for the additional expansion for parameter
	passing. the prefix itself is a packed reference as well,
	recurse to complete the transformation of the prefix.

2013-10-14  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_dbug.adb (Debug_Renaming_Declaration): Do not
	materialize the entity when the renamed object contains an
	N_Explicit_Dereference.
	* sem_ch8.adb (Analyze_Object_Renaming):
	If the renaming comes from source and the renamed object is a
	dereference, mark the prefix as needing debug information.

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

	* system-vxworks-arm.ads (Stack_Check_Probes, Stack_Check_Limits):
	Enable Stack Probes, Disable Stack Limit Checking.
	* init.c [VxWorks] (__gnat_inum_to_ivec): Caste return value.
	(__gnat_map_signal): Fix signature.
	(__gnat_error_handler): Make
	static, fix signature, remove prototype, fix prototype warning.
	[ARMEL and VxWorks6] (__gnat_map_signal): Check and re-arm guard
	page for storage_error.
	* exp_pakd.adb: Minor reformatting.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203526 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-14  Robert Dewar  <dewar@adacore.com>

	* einfo.ads, einfo.adb (Default_Aspect_Component_Value): Is on base type
	only.
	* exp_aggr.adb (Expand_Array_Aggregate): Handle proper
	initialization of <> component.
	* exp_ch3.adb, exp_tss.adb: Minor reformatting
	* sem_ch13.adb (Default_Aspect_Component_Value, Default_Aspect_Value):
	Is on base type only.
	* sinfo.ads: Minor comment revision.

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

	* g-decstr.adb (Decode_Wide_Wide_Character): Fix failure
	to detect invalid sequences where longer than necessary
	sequences are used for encoding.
	(Validate_Wide_Character):
	Call Decode_Wide_Character to get the above validations.
	(Validate_Wide_Wide_Character): Same fix
	* g-decstr.ads: Add documentation making it clear that the UTF-8
	implementation here recognizes all valid UTF-8 sequences, rather
	than the well-formed subset corresponding to characters defined
	in Unicode.
	(Next_Wide_Character): Remove comment about this
	being more efficient than Decode_Wide_Character (because this
	no longer the case).
	(Prev_Wide_Character): Add note that valid encoding is assumed.

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

	* a-wichha.adb (Character_Set_Version): New function.
	* a-wichha.ads: Remove comments for pragma Pure (final RM has
	this).
	(Character_Set_Version): New function.
	* gnat_rm.texi: Update doc.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203527 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-14  Robert Dewar  <dewar@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Add error
	entry for Library_Level attribute (which should not survive
	to expansion)
	* gnat_rm.texi: Document attribute Library_Level
	* sem_attr.adb (Analyze_Attribute, case Library_Level): Implement
	this new attribute (Set_Boolean_Result): Replaces Set_Result
	(Check_Standard_Prefix): Document that Check_E0 is called
	(Check_System_Prefix): New procedure
	* snames.ads-tmpl: Add entry for Library_Level attribute

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

	* exp_ch6.adb, sinfo.ads: Minor reformatting.
	* checks.adb (Overlap_Check): Use identifier casing in messages.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203528 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-14  Vincent Celier  <celier@adacore.com>

	* prj-attr.adb: New attributes in package Clean:
	Artifacts_In_Exec_Dir, Artifacts_In_Object_Dir.
	* prj-nmsc.adb (Process_Clean (Attributes)): New
	procedure to process attributes Artifacts_In_Exec_Dir and
	Artifacts_In_Object_Dir in package Clean.
	* prj.ads (Project_Configuration): New components
	Artifacts_In_Exec_Dir and Artifacts_In_Object_Dir.
	* snames.ads-tmpl: New standard names Artifacts_In_Exec_Dir and
	Artifacts_In_Object_Dir used only by gprclean.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203529 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-14  Vincent Celier  <celier@adacore.com>

	* projects.texi: Add documentation for new attributes of package
	Clean: Artifacts_In_Object_Dir and Artifacts_In_Exec_Dir.

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

	* adaint.c, adaint.h (__gnat_get_executable_load_address):
	New function.
	* a-exexda.adb (Append_Info_Basic_Exception_Traceback): Add
	executable load address (Basic_Exception_Tback_Maxlength): Adjust.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203530 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-14  Tristan Gingold  <gingold@adacore.com>

	* s-vmexta.ads: Add comments.

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

	* sem_ch6.adb (Analyze_Subprogram_Body_Contract): Add processing
	for pragma Refined_State.
	* sem_ch13.adb (Analyze_Aspect_Specifications): Add processing
	for aspect Refined_Depends.
	* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part):
	Use Find_Related_Subprogram_Or_Body to find the related
	context. Use the current scope when determining whether to
	ensure proper visibility.
	(Analyze_Depends_In_Decl_Part):
	Add local variable Spec_Id. Update the comment on usage of
	Subp_Id. Use Find_Related_Subprogram_Or_Body to find the
	related context. Extract the corresponding spec of the body
	(if any). Use the current scope when determining when to
	ensure proper visibility.
	(Analyze_Global_In_Decl_Part):
	Add local variable Spec_Id. Update the comment on usage of
	Subp_Id. Use Find_Related_Subprogram_Or_Body to find the
	related context. Extract the corresponding spec of the body
	(if any). Use the current scope when determining when to
	ensure proper visibility.
	(Analyze_Global_Item): Use the
	entity of the subprogram spec when performing formal parameter
	checks. Perform state-related checks.
	(Analyze_Input_Output):
	Use Is_Attribute_Result to detect 'Result. Query the
	entity of a subprogram spec when verifying the prefix of
	'Result. Perform state-related checks.	(Analyze_Pragma):
	Merge the analysis of Refined_Depends and Refined_Global.
	(Analyze_Refined_Depends_In_Decl_Part): Provide implemenation.
	(Analyze_Refined_Global_In_Decl_Part): Move state-related checks
	to the body of Analyze_Global_In_Decl_Part. Rename local constant
	List to Items.	(Analyze_Refined_Pragma): Remove circuitry to
	find the proper context, use Find_Related_Subprogram_Or_Body
	instead.
	(Check_Function_Return): Query the entity of
	the subprogram spec when verifying the use of 'Result.
	(Check_In_Out_States, Check_Input_States, Check_Output_States):
	Avoid using Has_Null_Refinement to detect a state with
	a non-null refinement, use the Refinement_Constituents
	list instead.
	(Check_Matching_Constituent): Remove initialization code.
	(Check_Mode_Restriction_In_Function): Use the entity of the subprogram
	spec when verifying mode usage in functions.
	(Collect_Global_Items): New routine.
	(Collect_Subprogram_Inputs_Outputs): Add local
	variable Spec_Id. Add circuitry for bodies-as-specs. Use
	pragma Refined_Global when collecting for a body.
	(Create_Or_Modify_Clause): Use the location of the
	clause. Rename local variable Clause to New_Clause to avoid
	confusion and update all occurrences.  Use Is_Attribute_Result
	to detect 'Result.
	(Find_Related_Subprogram): Removed.
	(Find_Related_Subprogram_Or_Body): New routine.
	(Is_Part_Of): Move routine to top level.
	(Normalize_Clause): Update the
	comment on usage. The routine can now normalize a clause with
	multiple outputs by splitting it.
	(Collect_Global_Items):
	Rename local constant List to Items. Remove the check for
	a null list.
	(Requires_Profile_Installation): Removed.
	(Split_Multiple_Outputs): New routine.
	* sem_prag.ads: Update the comments on usage of various
	pragma-related analysis routines.
	* sem_util.adb (Contains_Refined_State): The routine can now
	process pragma [Refined_]Depends.
	(Has_Refined_State): Removed.
	(Has_State_In_Dependency): New routine.
	(Has_State_In_Global): New routine.
	(Is_Attribute_Result): New routine.
	* sem_util.ads (Is_Attribute_Result): New routine.

2013-10-14  Emmanuel Briot  <briot@adacore.com>

	* s-regpat.adb (Compile): Fix finalization of the automaton
	when its size was automatically computed to be exactly 1000 bytes.

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

	* sem_ch3.adb (Complete_Private_Subtype): If the full view of
	the base type is constrained, the full view of the subtype is
	known to be constrained as well.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203531 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Analyze_Depends_In_Decl_Part,
	Analyze_Global_In_Decl_Part,
	Analyze_Pre_Post_Condition_In_Decl_Part): Install the subprogram
	and its formals only when it is not already installed.
	* sem_util.adb (Is_Refined_State): A state is refined when it
	has a non-empty list of constituents.

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

	* adaint.c: Disable __gnat_get_executable_load_address for linux.
	* exp_prag.adb: Add comment in Expand_Pragma_Import_Export_Exception.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203532 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-14  Richard Biener  <rguenther@suse.de>

	lto/
	* lto.c (gimple_types, type_hash_cache, struct type_pair_d,
	type_pair_cache, lookup_type_pair, struct sccs, next_dfs_num,
	gtc_next_dfs_num, compare_type_names_p, gtc_visit,
	gimple_types_compatible_p_1, gimple_types_compatible_p,
	visit, iterative_hash_name, struct type_hash_pair,
	type_hash_pair_compare, iterative_hash_gimple_type, gimple_type_hash,
	gimple_type_eq, gimple_register_type, num_not_merged_types,
	num_not_merged_types_in_same_scc, num_not_merged_types_trees,
	num_not_merged_types_in_same_scc_trees): Remove old merging code
	and statistics.
	(lto_read_decls): Do not run old merging code in parallel.
	(read_cgraph_and_symbols): Do not init/free old merging
	data structures.
	(print_lto_report_1): Do not report differences of old vs. new
	merging code.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203533 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-14  Robert Dewar  <dewar@adacore.com>

	* exp_prag.adb, sem_prag.adb, a-exexda.adb, s-vmexta.ads: Minor
	reformatting.

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

	* ali.adb (Get_File_Name): New Boolean parameter May_Be_Quoted,
	defaulted to False.  Calls Get_Name with May_Be_Quoted.
	(Get_Name): New Boolean parameter May_Be_Quoted, defaulted to
	False. If May_Be_Quoted is True and first non blank charater is
	'"', unquote the name.
	(Scan_ALI): For the file/path name on the D line, call Get_File_Name
	with May_Be_Quoted = True, as it may have been quoted.
	* lib-util.adb, lib-util.ads (Write_Info_Name_May_Be_Quoted): New
	procedure to write file/path names that may contain spaces and if they
	do are quoted.
	* lib-writ.adb (Write_ALI): Use new procedure
	Write_Info_Name_May_Be_Quoted to write file/path names on D lines.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203534 138bc75d-0d04-0410-961f-82ee72b054a4
2013-10-14  Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: Document -gnateu switch.
	* opt.ads (Ignore_Unrecognized_VWY_Switches): New switch.
	* stylesw.adb: Ignore unrecognized switch if
	Ignore_Unrecognized_VWY_Switches set.
	* switch-c.adb: Implement -gnateu (sets
	Ignore_Unrecognized_VWY_Switches).
	* validsw.adb: Ignore unrecognized switch if
	Ignore_Unrecognized_VWY_Switches set.
	* warnsw.adb: Ignore unrecognized switch if
	Ignore_Unrecognized_VWY_Switches set.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203536 138bc75d-0d04-0410-961f-82ee72b054a4