1. 14 Oct, 2013 40 commits
    • lto.c (gimple_canonical_types): Move out-of GC space. · 1394237e
      2013-10-14  Richard Biener  <rguenther@suse.de>
      
      	lto/
      	* lto.c (gimple_canonical_types): Move out-of GC space.
      	(canonical_type_hash_cache): Make a pointer-map.
      	(num_canonical_type_hash_entries, num_canonical_type_hash_queries):
      	New counters.
      	(iterative_hash_canonical_type): Adjust.
      	(read_cgraph_and_symbols): Likewise.
      	(print_lto_report_1): Likewise.
      
      From-SVN: r203566
      Richard Biener committed
    • trans.c: Synchronize declarations of other/all others between gigi and the runtime. · 23e0b03a
      	* gcc-interface/trans.c: Synchronize declarations of other/all others
      	between gigi and the runtime.
      
      From-SVN: r203565
      Tristan Gingold committed
    • gigi.h (standard_datatypes): Add ADT_set_exception_parameter_decl · 9f2a75d3
      2013-10-14  Tristan Gingold  <gingold@adacore.com>
                                              
      	* gcc-interface/gigi.h (standard_datatypes): Add
      	ADT_set_exception_parameter_decl 
      	(set_exception_parameter_decl): New macro.
      	* gcc-interface/trans.c (gigi): Initialize set_exception_parameter_decl.
      	(Exception_Handler_to_gnu_zcx): Initialize the choice parameter.
      
      From-SVN: r203561
      Tristan Gingold committed
    • [multiple changes] · 161c5cc5
      2013-10-14  Robert Dewar  <dewar@adacore.com>
      
      	* exp_attr.adb (Find_Stream_Subprogram): Optimize
      	Storage_Array stream handling.
      	(Find_Stream_Subprogram): Optimize Stream_Element_Array stream handling
      	* rtsfind.ads: Add entry for Stream_Element_Array Add
      	entries for RE_Storage_Array subprograms Add entries for
      	RE_Stream_Element_Array subprograms
      	* s-ststop.ads, s-ststop.adb: Add processing for System.Storage_Array.
      	Add processing for Ada.Stream_Element_Array.
      
      2013-10-14  Tristan Gingold  <gingold@adacore.com>
      
      	* a-except-2005.ads, a-except-2005.adb:
      	(Get_Exception_Machine_Occurrence): New function.
      	* raise-gcc.c (__gnat_unwind_exception_size): New constant.
      
      From-SVN: r203560
      Arnaud Charlet committed
    • sem_res.adb: Minor fix to error message text. · 2590ef12
      2013-10-14  Robert Dewar  <dewar@adacore.com>
      
      	* sem_res.adb: Minor fix to error message text.
      	* errout.ads, erroutc.ads: Minor reformatting.
      	* s-ststop.ads, s-stratt.ads: Clean up documentation of block IO
      	mode for streams.
      	* s-stratt-xdr.adb: Minor comment update.
      
      From-SVN: r203559
      Robert Dewar committed
    • [multiple changes] · 43dbd3e3
      2013-10-14  Robert Dewar  <dewar@adacore.com>
      
      	* sem_aux.adb, sem_aux.ads, sem_prag.adb: Minor reformatting.
      
      2013-10-14  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_res.adb (Resolve_Actuals): Add error message for a
      	subprogram with an in-out parameter when used in a predicate,
      	to clarify subsequent error at the point of call.
      
      From-SVN: r203558
      Arnaud Charlet committed
    • sem_prag.adb (Is_Matching_Input): Consume a matching null input. · 42481458
      2013-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Is_Matching_Input): Consume a matching null input.
      
      From-SVN: r203557
      Hristian Kirtchev committed
    • [multiple changes] · d12b19fa
      2013-10-14  Robert Dewar  <dewar@adacore.com>
      
      	* freeze.adb (Freeze_Record): Don't give warning about packed
      	and foreign convention.
      
      2013-10-14  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_aux.adb, sem_aux.ads (Package_Specification): New function, to
      	replace the less efficient idiom Specification.
      	(Unit_Declaration_Node (Pack_Id)), which handles library units and
      	child units.
      	* sem_ch3.adb, sem_ch10.adb, sem_prag.adb, sem_ch12.adb, sem_ch6.adb,
      	exp_disp.adb, sem_cat.adb, exp_dist.adb: Use Package_Specification.
      
      2013-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_attr.adb (Expand_Update_Attribute): Update the call to
      	Process_Range_Update.
      	(Process_Range_Update): Add new formal parameter Typ and associated
      	comment on usage. Add local constant Index_Typ. Add a type conversion
      	as part of the indexed component to ensure that the loop variable
      	corresponds to the index type.
      
      From-SVN: r203556
      Arnaud Charlet committed
    • [multiple changes] · 515490e0
      2013-10-14  Tristan Gingold  <gingold@adacore.com>
      
      	* a-exexpr-gcc.adb: Adjust comment.
      	(Others_Value, All_Others_Value,
      	Unhandled_Others_Value): Declare as Character to slightly reduce
      	memory footprint.
      
      2013-10-14  Robert Dewar  <dewar@adacore.com>
      
      	* freeze.adb (Size_Known): Size is not known for packed record
      	with aliased components
      
      From-SVN: r203555
      Arnaud Charlet committed
    • sem_ch3.adb: Minor fix to error message. · 808876a9
      2013-10-14  Robert Dewar  <dewar@adacore.com>
      
      	* sem_ch3.adb: Minor fix to error message.
      	* a-exexpr-gcc.adb, sem_util.adb, sem_case.adb, exp_ch11.adb: Minor
      	reformatting.
      
      From-SVN: r203554
      Robert Dewar committed
    • [multiple changes] · 63bb4268
      2013-10-14  Arnaud Charlet  <charlet@adacore.com>
      
      	* exp_ch11.adb: Fix typo.
      
      2013-10-14  Thomas Quinot  <quinot@adacore.com>
      
      	* exp_util.ads: Minor reformatting.
      
      2013-10-14  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Build_Derived_Record_Type): Reject full views
      	with no explicit discriminant constraints, when the parents of
      	the partial view and the full view are constrained subtypes with
      	different constraints.
      
      2013-10-14  Robert Dewar  <dewar@adacore.com>
      
      	* freeze.adb (Freeze_Array_Type): New procedure, abstracts out
      	this code from Freeze.
      	(Freeze_Array_Type): Detect pragma Pack overriding foreign convention
      	(Freeze_Record_Type): Ditto.
      
      From-SVN: r203553
      Arnaud Charlet committed
    • [multiple changes] · e74d643a
      2013-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Analyze_Dependency_Clause): Add new local variable
      	Non_Null_Output_Seen.  Update the call to Analyze_Input_Output.
      	(Analyze_Input_Item): Streamline the detection mechanism of null and
      	non-null items.
      	(Analyze_Input_List): Add new local variable
      	Non_Null_Input_Seen. Update all calls to Analyze_Input_Output.
      	(Analyze_Input_Output): Add new formal parameter Non_Null_Seen
      	and update the related comment on usage. Update the
      	recursive call to itself. Attribute 'Result is now treated
      	as a non-null item. Detect mixes of null and non-null items.
      	(Analyze_Initialization_Item): Streamline the detection mechanism
      	of null and non-null items.
      
      2013-10-14  Vincent Celier  <celier@adacore.com>
      
      	* projects.texi: Add documentation for the new project level
      	attribute Library_Rpath_Options.
      
      2013-10-14  Tristan Gingold  <gingold@adacore.com>
      
      	* a-exexpr-gcc.adb (Set_Exception_Parameter): New procedure.
      	(Set_Foreign_Occurrence): New procedure, extracted from
      	Setup_Current_Excep.
      	* exp_ch11.adb (Expand_Exception_Handlers): Do not expand choice
      	parameter in case of zcx.
      	* sem_ch11.adb (Analyze_Exception_Handlers): Need debug info
      	for the choice parameter.
      	* raise-gcc.c: Add comments.
      
      From-SVN: r203552
      Arnaud Charlet committed
    • [multiple changes] · 9b2451e5
      2013-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* aspects.adb: Add an entry in table Canonical_Aspect for
      	Initial_Condition.
      	* aspects.ads: Add entries in tables Aspect_Id, Aspect_Argument,
      	Aspect_Names and Aspect_Delay for Initial_Condition.
      	* einfo.adb (Get_Pragma): Include pragma Initial_Condition to
      	categorization pragmas.
      	* einfo.ads (Get_Pragma): Update comment on usage.
      	* exp_ch7.adb (Expand_N_Package_Body): Add a runtime check to
      	verify the assertion introduced by pragma Initial_Condition.
      	(Expand_N_Package_Declaration): Add a runtime check to
      	verify the assertion introduced by pragma Initial_Condition.
      	(Expand_Pragma_Initial_Condition): New routine.
      	* par-prag: Include pragma Initial_Condition to the list of
      	pragmas that do not require special processing by the parser.
      	* sem_ch3.adb (Analyze_Declarations): Analyze pragma
      	Initial_Condition at the end of the visible declarations.
      	* sem_ch13.adb (Analyze_Aspect_Specifications): Add processing
      	for aspect Initial_Condition.
      	(Check_Aspect_At_Freeze_Point):
      	Aspect Initial_Condition does not need inspection at freezing.
      	* sem_prag.adb (Analyze_Initial_Condition_In_Decl_Part):
      	New routine.
      	(Analyze_Pragma): Update all calls
      	to Check_Declaration_Order. Add processing for pragma
      	Initial_Condition. Initial_Condition is now a valid assertion
      	kind.  Add an entry in table Sig_Flags for Initial_Condition.
      	(Check_Declaration_Order): Reimplemented to handle arbitrary
      	pragmas.
      	(Is_Valid_Assertion_Kind): Add an entry for
      	Initial_Condition.
      	* sem_pag.ads (Analyze_Initial_Condition_In_Decl_Part):
      	New routine.
      	* sem_util.adb (Add_Contract_Item): Pragma Initial_Condition
      	can now be associated with a package spec.
      	* sem_util.ads (Add_Contract_Item): Update comment on usage.
      	* sinfo.ads: Update the documentation of node N_Contract
      	* snames.ads-tmpl: Add new predefined name Initial_Condition. Add
      	new pragma id for Initial_Condition.
      
      2013-10-14  Thomas Quinot  <quinot@adacore.com>
      
      	* exp_pakd.adb: Minor reformatting.
      
      From-SVN: r203551
      Arnaud Charlet committed
    • [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