1. 14 Oct, 2013 35 commits
    • [multiple changes] · 1e7bc065
      2013-10-14  Robert Dewar  <dewar@adacore.com>
      
      	* exp_prag.adb: Minor reformatting.
      
      2013-10-14  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_case.adb (Check_Against_Predicate): Handle properly an
      	others clause in various cases.
      
      2013-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Check_Matching_Constituent): Do
      	not inspect the hidden states if there are no hidden states. This
      	case arises when the constituents are states coming from a
      	private child.
      
      2013-10-14  Doug Rupp  <rupp@adacore.com>
      
      	* init.c [ARMEL and VxWorks] (__gnat_map_signal): Re-arm guard
      	page by clearing VALID bit vice setting page protection.
      
      2013-10-14  Arnaud Charlet  <charlet@adacore.com>
      
      	* gnat_rm.texi, adaint.c: Fix typo.
      
      2013-10-14  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_util.adb (Is_Variable, In_Protected_Function):  In the
      	body of a protected function, the protected object itself is a
      	constant (not just its components).
      
      From-SVN: r203550
      Arnaud Charlet committed
    • [multiple changes] · 5644b7e8
      2013-10-14  Vincent Celier  <celier@adacore.com>
      
      	* snames.ads-tmpl: Add new standard name Library_Rpath_Options.
      
      2013-10-14  Tristan Gingold  <gingold@adacore.com>
      
      	* sem_prag.adb (Process_Import_Or_Interface): Allow importing
      	of exception using convention Cpp.
      	* exp_prag.adb (Expand_Pragma_Import_Or_Interface): Expand cpp
      	imported exceptions.
      	* raise-gcc.c (is_handled_by): Filter C++ exception occurrences.
      	* gnat_rm.texi: Document how to import C++ exceptions.
      
      2013-10-14  Jose Ruiz  <ruiz@adacore.com>
      
      	* sem_ch13.adb (Sem_Ch13.Analyze_Aspect_Specification): For
      	Priority and CPU aspects, when checking, issue a warning only
      	if it is obviously not a main program.
      
      2013-10-14  Tristan Gingold  <gingold@adacore.com>
      
      	* adaint.c: Fix condition for AIX. Minor reformatting.
      
      From-SVN: r203549
      Arnaud Charlet committed
    • sem_ch3.adb, [...]: Minor reformatting. · 0895ac08
      2013-10-14  Robert Dewar  <dewar@adacore.com>
      
      	* sem_ch3.adb, sem_prag.adb, prj.ads: Minor reformatting.
      
      From-SVN: r203548
      Robert Dewar committed
    • sem_prag.adb (Analyze_Depends_In_Decl_Part): Rename Outputs_Seen to… · 5ddcf7ed
      sem_prag.adb (Analyze_Depends_In_Decl_Part): Rename Outputs_Seen to All_Outputs_Seen and update all occurrences of the variable.
      
      2013-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Analyze_Depends_In_Decl_Part):
      	Rename Outputs_Seen to All_Outputs_Seen and update all occurrences
      	of the variable.
      	(Analyze_Input_Output): Add an item to
      	All_Inputs_Seen when it is an input or a self-referential output.
      	(Check_Mode): Comment reformatting.
      	(Analyze_Abstract_State): Remove the restriction that an Export state
      	must also have mode Input_Only or Output_Only.
      
      From-SVN: r203547
      Hristian Kirtchev committed
    • einfo.adb: Flag 263 is now known as Has_Visible_Refinement. · c5c0ce68
      2013-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* einfo.adb: Flag 263 is now known as Has_Visible_Refinement.
      	(Has_Non_Null_Refinement): New routine.
      	(Has_Null_Refinement): The routine is now synthesized.
      	(Has_Visible_Refinement): New routine.
      	(Set_Has_Visible_Refinement): New routine.
      	(Write_Entity_Flags): Remove the output for
      	Has_Null_Refinement. Add output for Has_Visible_Refinement.
      	* einfo.ads: Update the occurrences of Has_Non_Null_Refinement,
      	Has_Null_Refinement and Has_Visible_Refinement in entities.
      	(Has_Non_Null_Refinement): New synthesized attribute.
      	(Has_Null_Refinement): This attribute is now synthesized.
      	(Has_Visible_Refinement): New routine with corresponding
      	pragma Inline.
      	(Set_Has_Visible_Refinement): New routine with corresponding pragma
      	Inline.
      	* sem_ch3.adb (Analyze_Declarations): Add new local
      	variable In_Package_Body. Remove state refinements from
      	visibility at the end of the package body declarations.
      	(Remove_Visible_Refinements): New routine.
      	* sem_prag.adb (Analyze_Constituent): Collect a null
      	constituent and mark the state as having visible refinement.
      	(Analyze_Global_Item): Use attribute Has_Visible_Refinement to
      	detect a state with visible refinement.
      	(Analyze_Input_Output): Use attribute Has_Visible_Refinement to detect
      	a state with visible refinement.
      	(Check_Dependency_Clause): Use attribute Has_Non_Null_Refinement rather
      	than checking the contents of list Refinement_Constituents.
      	(Check_In_Out_States): Use attribute Has_Non_Null_Refinement rather
      	than checking the contents of list Refinement_Constituents.
      	(Check_Input_States): Use attribute Has_Non_Null_Refinement rather
      	than checking the contents of list Refinement_Constituents.
      	(Check_Matching_Constituent): Mark a state as having visible refinement.
      	(Check_Output_States): Use attribute Has_Non_Null_Refinement rather than
      	checking the contents of list Refinement_Constituents.
      	(Check_Refined_Global_Item): Use attribute Has_Visible_Refinement
      	to detect a state with visible refinement.
      	(Is_Matching_Input): Use attribute Has_Non_Null_Refinement rather than
      	checking the contents of list Refinement_Constituents.
      	* sem_util.adb (Is_Refined_State): Use attribute
      	Has_Visible_Refinement to detect a state with visible refinement.
      
      From-SVN: r203546
      Hristian Kirtchev committed
    • sem_prag.adb (Check_Mode): Do not emit an error when inspecting a self… · 26168a32
      sem_prag.adb (Check_Mode): Do not emit an error when inspecting a self referencial output item of an...
      
      2013-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Check_Mode): Do not emit an
      	error when inspecting a self referencial output item of an
      	unconstrained type.
      
      From-SVN: r203545
      Hristian Kirtchev committed
    • [multiple changes] · c852a0a9
      2013-10-14  Tristan Gingold  <gingold@adacore.com>
      
      	* exp_prag.adb (Expand_Pragma_Import_Export_Exception): Fix
      	target type for code of VMS imported exception.
      	* init.c: Replace Exception_Code by void *.
      	* s-vmexta.adb (Hash, Base_Code_In): Adjust code after changing
      	the type of Exception_Code.
      
      2013-10-14  Vincent Celier  <celier@adacore.com>
      
      	* prj.ads: Minor comment updates.
      	* prj-attr.adb: New attribute Library_Rpath_Options.
      
      From-SVN: r203544
      Arnaud Charlet committed
    • [multiple changes] · cf3b97ef
      2013-10-14  Robert Dewar  <dewar@adacore.com>
      
      	* gnat_rm.texi: Library_Level attribute now applies to an
      	entity name.
      	* sem_attr.adb (Analyze_Attribute, case Library_Level): Prefix
      	is now an entity name.
      
      2013-10-14  Jose Ruiz  <ruiz@adacore.com>
      
      	* sem_ch13.adb (Analyze_Aspect_Specification): For
      	Priority and CPU aspects in subprograms, the expression in the
      	aspect is analyzed and exported.
      
      From-SVN: r203543
      Arnaud Charlet committed
    • [multiple changes] · 5c211bfd
      2013-10-14  Robert Dewar  <dewar@adacore.com>
      
      	* s-valuti.adb, prep.adb, scng.adb, errout.adb: Minor reformatting.
      
      2013-10-14  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* adaint.c: Further disable __gnat_get_executable_load_address
      	for Linux.
      
      2013-10-14  Vincent Celier  <celier@adacore.com>
      
      	* gnat_ugn.texi: Add documentation for comparing symbols to
      	integers in preprocessing expressions.
      
      2013-10-14  Jose Ruiz  <ruiz@adacore.com>
      
      	* sem_prag.adb (Analyze_Aspect_Specification): For
      	Priority and CPU aspects in subprograms, the expression in the
      	aspect is analyzed and exported.
      	(Analyze_Pragma): When having a Priority pragma in the
      	main subprogram, load a unit that will force the initialization
      	of the tasking run time, which is needed for setting the required
      	priority.
      
      2013-10-14  Vincent Celier  <celier@adacore.com>
      
      	* prj-nmsc.adb (Check_Interfaces): Put in Other_Interfaces all
      	non Ada interface files.
      	* prj.ads (Project_Data): New component Other_Interfaces.
      
      From-SVN: r203542
      Arnaud Charlet committed
    • * gcc-interface/Makefile.in: Target pairs clean ups. · ffd76236
      From-SVN: r203541
      Arnaud Charlet committed
    • errout.adb (Write_Error_Summary): Do not output the number of lines when… · 5164151f
      errout.adb (Write_Error_Summary): Do not output the number of lines when Main_Source_File is unknown.
      
      2013-10-14  Vincent Celier  <celier@adacore.com>
      
      	* errout.adb (Write_Error_Summary): Do not output the number
      	of lines when Main_Source_File is unknown.
      	(Output_Messages): Do not write the header when Main_Source_File is
      	unknown.
      
      2013-10-14  Vincent Celier  <celier@adacore.com>
      
      	* prep.adb (Expression): Accept terms of the form 'symbol <relop>
      	integer", where relop is =, <, <=, > or >=.
      	(Parse_Def_File): Accept literal integer values.
      	* gcc-interface/Make-lang.in: Add s-valint.o, s-valuns.o and
      	s-valuti.o to the compiler object files.
      
      From-SVN: r203540
      Vincent Celier committed
    • [multiple changes] · 0247964d
      2013-10-14  Robert Dewar  <dewar@adacore.com>
      
      	* exp_prag.adb, exp_ch11.adb, s-exctab.adb: Minor reformatting.
      	* usage.adb: Add line for -gnateu switch.
      
      2013-10-14  Vincent Celier  <celier@adacore.com>
      
      	* lib-writ.ads: Add comments to indicate that a path name in
      	D lines may be quoted if the path name includes directories
      	with spaces.
      
      2013-10-14  Robert Dewar  <dewar@adacore.com>
      
      	* debug.adb: Document -gnatd.E.
      	* gnat1drv.adb (Adjust_Global_Switches): Set Error_To_Warning
      	if -gnatd.E set.
      	* opt.ads (Error_To_Warning): New switch.
      	* osint.adb: Minor reformatting.
      	* sem_warn.adb (Warn_On_Overlapping_Actuals): Overlap is error
      	in some cases in Ada 2012 mode (unless Error_To_Warning) is set.
      	* sem_warn.ads (Warn_On_Overlapping_Actuals): Document error
      	in Ada 2012 mode.
      
      2013-10-14  Tristan Gingold  <gingold@adacore.com>
      
      	* cstand.adb: Add a comment for Standard_Exception_Type.
      
      2013-10-14  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch4.adb (Process_Transient_Object): If a transient scope
      	has already been created, use the corresponding Node_To_Be_Wrapped
      	as the insertion point for the controlled actions.
      
      From-SVN: r203539
      Arnaud Charlet committed
    • cstand.adb (Create_Standard): Change Import_Code component of… · e443f142
      cstand.adb (Create_Standard): Change Import_Code component of Standard_Exception_Type to Foreign_Data.
      
      2013-10-14  Tristan Gingold  <gingold@adacore.com>
      
      	* cstand.adb (Create_Standard): Change Import_Code component
      	of Standard_Exception_Type to Foreign_Data. Its type is now
      	Standard_A_Char (access to character).
      	* exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust
      	definition of Code to match the type of Foreign_Data.
      	* s-stalib.ads (Exception_Data): Replace Import_Code by Foreign_Data
      	Change the definition of standard predefined exceptions.
      	(Exception_Code): Remove.
      	* raise.h (Exception_Code): Remove (Exception_Data): Replace
      	Import_Code field by Foreign_Data.
      	* rtsfind.ads (RE_Exception_Code): Remove
      	(RE_Import_Address): Add.
      	* a-exexpr-gcc.adb (Import_Code_For): Replaced by Foreign_Data_For.
      	* exp_ch11.adb (Expand_N_Exception_Declaration): Associate null
      	to Foreign_Data component.
      	* raise-gcc.c (Import_Code_For): Replaced by Foreign_Data_For.
      	(is_handled_by): Add comments. Use replaced function. Change
      	condition so that an Ada occurrence is never handled by
      	Foreign_Exception.
      	* s-exctab.adb (Internal_Exception): Associate Null_Address to
      	Foreign_Data component.
      	* s-vmexta.adb, s-vmexta.ads (Exception_Code): Declare Replace
      	SSL.Exception_Code by Exception_Code.
      
      From-SVN: r203538
      Tristan Gingold committed
    • Fix gcc.dg/torture/pr58670.c for Solaris 9/x86 assembler · 5a015f2b
      	* gcc.dg/torture/pr58670.c (ASM_STR) [__i386__ || __x86_64__]: Use
      	btsl.
      
      From-SVN: r203537
      Rainer Orth committed
    • gnat_ugn.texi: Document -gnateu switch. · d48cd424
      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.
      
      From-SVN: r203536
      Robert Dewar committed
    • [multiple changes] · e4691ba9
      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.
      
      From-SVN: r203534
      Arnaud Charlet committed
    • lto.c (gimple_types, [...]): Remove old merging code and statistics. · 0a387eca
      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.
      
      From-SVN: r203533
      Richard Biener committed
    • [multiple changes] · 055416a8
      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.
      
      From-SVN: r203532
      Arnaud Charlet committed
    • [multiple changes] · 39d3009f
      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.
      
      From-SVN: r203531
      Arnaud Charlet committed
    • [multiple changes] · 747412b8
      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.
      
      From-SVN: r203530
      Arnaud Charlet committed
    • prj-attr.adb: New attributes in package Clean: Artifacts_In_Exec_Dir, Artifacts_In_Object_Dir. · 3599a97b
      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.
      
      From-SVN: r203529
      Vincent Celier committed
    • exp_attr.adb (Expand_N_Attribute_Reference): Add error entry for Library_Level… · f7ea2603
      exp_attr.adb (Expand_N_Attribute_Reference): Add error entry for Library_Level attribute (which should not survive to expansion)
      
      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.
      
      From-SVN: r203528
      Robert Dewar committed
    • einfo.ads, einfo.adb (Default_Aspect_Component_Value): Is on base type only. · 688a9b51
      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.
      
      From-SVN: r203527
      Robert Dewar committed
    • [multiple changes] · 124092ee
      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.
      
      From-SVN: r203526
      Arnaud Charlet committed
    • sem_prag.adb (Analyze_Global_In_Decl_Part): Remove local variable Contract_Seen. · b447a757
      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.
      
      From-SVN: r203525
      Hristian Kirtchev committed
    • [multiple changes] · 577ee3a9
      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
      
      From-SVN: r203524
      Arnaud Charlet committed
    • [multiple changes] · d1d81616
      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.
      
      From-SVN: r203523
      Arnaud Charlet committed
    • aspects.adb: Add an entry in table Canonical_Aspect for Initializes. · 54e28df2
      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.
      
      From-SVN: r203522
      Hristian Kirtchev committed
    • gimple.c (gimple_canonical_types, [...]): Move to lto/lto.c · 83fd5d11
      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.
      
      From-SVN: r203521
      Richard Biener committed
    • re PR target/58716 ([PATCH] MSP430X check is inverted) · a6dbd0f7
      	PR target/58716
      	* config/msp430/msp430.c (msp430_option_override): Correct thinko
      	scanning for msp430x targets.
      
      From-SVN: r203520
      Travis Snoozy committed
    • re PR bootstrap/58509 (ICE in calc_dfs_tree, at dominance.c:397 during Ada runtime build) · b5ccb9ed
      	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.
      
      From-SVN: r203518
      Eric Botcazou committed
    • re PR other/58712 (issues found by --enable-checking=valgrind) · fd7e5084
      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.
      
      From-SVN: r203517
      Richard Biener committed
    • re PR tree-optimization/58640 (wrong code (segfaults) at -O3 on x86_64-linux-gnu) · d19d091c
      2013-10-14  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/58640
      	* gcc.c-torture/execute/pr58640-2.c: New testcase.
      
      From-SVN: r203516
      Richard Biener committed
    • env.c (parse_bind_var): Initialize value to avoid (false positive) warning. · c8673881
      	* env.c (parse_bind_var): Initialize value to avoid
      	(false positive) warning.
      
      From-SVN: r203514
      Jakub Jelinek committed
    • Daily bump. · 9e58eee7
      From-SVN: r203511
      GCC Administrator committed
  2. 13 Oct, 2013 5 commits
    • Make-lang.in (ada/%.o): Replace individual rules with generic rule and add $(POSTCOMPILE). · 8219336f
      	* gcc-interface/Make-lang.in (ada/%.o): Replace individual rules with
      	generic rule and add $(POSTCOMPILE).
      	(ADA_DEPS): New.
      	(.adb.o): Add @$(ADA_DEPS).
      	(.ads.o): Likewise.
      	(ada/a-except.o): Likewise.
      	(ada/s-excdeb.): Likewise.
      	(ada/s-assert.o): Likewise.
      	(ada/a-tags.o): Likewise.
      	(ada_generated_files): New variable.
      	Use them as dependency order for GNAT1_ADA_OBJS and GNATBIND_OBJS.
      	(ADA_DEPFILES): New variable.
      	Include them.
      	(ada_OBJS): Define.
      
      Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>
      
      From-SVN: r203508
      Nicolas Roche committed
    • decl.c (gnat_to_gnu_entity): Force all local variables with aggregate types in… · f036807a
      decl.c (gnat_to_gnu_entity): Force all local variables with aggregate types in memory if not optimizing.
      
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Force all local
      	variables with aggregate types in memory if not optimizing.
      
      From-SVN: r203507
      Eric Botcazou committed
    • [multiple changes] · d67f5bbb
      2013-10-13  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Check_Mode): Do
      	not emit an error when we are looking at inputs and
      	the item is an unconstrained or tagged out parameter.
      	(Check_Mode_Restriction_In_Enclosing_Context): Use Get_Pragma
      	to find whether the context is subject to aspect/pragma Global.
      	(Collect_Subprogram_Inputs_Outputs): Unconstrained or tagged
      	out parameters are now considered inputs. Use Get_Pragma to
      	find wheher the subprogram is subject to aspect/pragma Global.
      	(Is_Unconstrained_Or_Tagged_Item): New routine.
      
      2013-10-13  Thomas Quinot  <quinot@adacore.com>
      
      	* einfo.ads: Minor reformatting.
      	* gcc-interface/Make-lang.in: Update dependencies.
      
      From-SVN: r203506
      Arnaud Charlet committed
    • gnat_rm.texi: Add documentation for pragmas Pre[_Class] Post[_Class]. · ff7a7e12
      2013-10-13  Robert Dewar  <dewar@adacore.com>
      
      	* gnat_rm.texi: Add documentation for pragmas Pre[_Class]
      	Post[_Class].
      	* par-ch2.adb (Skip_Pragma_Semicolon): Handle extra semicolon nicely.
      	* par-prag.adb: Add entries for pragmas Pre[_Class] and
      	Post[_Class].
      	* sem_prag.adb: Add handling of pragmas Pre[_Class] and
      	Post[_Class].
      	* sem_util.adb (Original_Aspect_Name): Moved here from
      	Sem_Prag.Original_Name, and modified to handle pragmas
      	Pre/Post/Pre_Class/Post_Class.
      	* sem_util.ads (Original_Aspect_Name): Moved here from
      	Sem_Prag.Original_Name.
      	* snames.ads-tmpl: Add entries for pragmas Pre[_Class] and
      	Post[_Class].
      
      2013-10-13  Robert Dewar  <dewar@adacore.com>
      
      	* einfo.adb, sem_ch6.adb: Minor reformatting.
      
      From-SVN: r203505
      Robert Dewar committed
    • einfo.adb: Add node/list usage for Refined_State and Refinement_Constituents. · ab8843fa
      2013-10-13  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* einfo.adb: Add node/list usage for Refined_State
      	and Refinement_Constituents.
      	(Get_Pragma): Update the
      	initialization of Is_CDG to include Refined_Global and
      	Refined_Depends. Rename constant Delayed to In_Contract and update
      	all of its occurrences.
      	(Is_Non_Volatile_State): New routine.
      	(Is_Volatile_State): Removed.
      	(Refined_State): New routine.
      	(Refinement_Constituents): New routine.
      	(Set_Refined_State): New routine.
      	(Set_Refinement_Constituents): New routine.
      	(Write_Field8_Name): Add output for Refinement_Constituents.
      	(Write_Field10_Name): Add output for Refined_State.
      	* einfo.ads: Add new synthesized attribute Is_Non_Volatile_State.
      	Remove synthesized attribute Is_Volatile_State.  Add new
      	attributes Refined_State and Refinement_Constituents along with
      	usage in nodes.
      	(Get_Pragma): Update the comment on usage.
      	(Is_Non_Volatile_State): New routine.
      	(Is_Volatile_State): Removed.
      	(Refined_State): New routine and pragma Inline.
      	(Refinement_Constituents): New routine and pragma Inline.
      	(Set_Refined_State): New routine and pragma Inline.
      	(Set_Refinement_Constituents): New routine and pragma Inline.
      	* elists.ads, elists.adb (Clone): Removed.
      	(New_Copy_Elist): New routine.
      	(Remove): New routine.
      	* sem_ch3.adb (Analyze_Declarations): Use Defining_Entity
      	to get the entity of the subprogram [body].
      	(Analyze_Object_Declaration): Add initialization for
      	Refined_State.
      	* sem_ch6.adb (Analyze_Subprogram_Body_Contract): Add processing
      	for Refined_Global and Refined_Depends. Emit an error when
      	the body requires Refined_Global, but the aspect/pragma is
      	not present.
      	* sem_ch6.ads (Analyze_Subprogram_Body_Contract): Change
      	procedure signature and add comment on usage.
      	* sem_ch13.adb (Analyze_Aspect_Specifications): Add processing
      	for aspect Refined_Global.
      	* sem_prag.adb (Analyze_Abstract_State): Add initialization
      	of attributes Refined_State and Refinement_Constituents.
      	(Analyze_Depends_In_Decl_Part, Analyze_Global_In_Decl_Part,
      	Analyze_Contract_Cases_In_Decl_Part): Remove local
      	constant Arg1.
      	(Analyze_Pragma): Add processing for pragma
      	Refined_Global. The analysis of Refined_Post and Refined_Pre
      	has been merged. Update an error message in the processing of
      	pragma Refined_State.
      	(Analyze_Refined_Global_In_Decl_Part): Provide implementation.
      	(Analyze_Refined_Pragma): New routine.
      	(Analyze_Refined_Pre_Post_Condition): Removed.
      	(Analyze_Refined_State_In_Decl_Part): Update the call to Clone.
      	(Analyze_Refinement_Clause): Make State_Id visible to all
      	nested subprogram.
      	(Check_Matching_Constituent): Establish
      	a relation between a refined state and its constituent.
      	(Collect_Hidden_States_In_Decls): Remove ??? comment. Look at
      	the entity of the object declaration to establish its kind.
      	* sem_util.adb: Alphabetize with and use clauses.
      	(Contains_Refined_State): New routine.
      	* sem_util.ads (Contains_Refined_State): New routine.
      
      From-SVN: r203504
      Hristian Kirtchev committed