2014-01-21  Thomas Quinot  <quinot@adacore.com>

	* exp_ch5.adb: Fix comment.
	* switch-c.adb: Minor comment update.
	* exp_ch3.adb: Minor reformatting.

2014-01-21  Arnaud Charlet  <charlet@adacore.com>

	* back_end.adb (Scan_Compiler_Arguments): Do not store object
	filename in gnatprove mode.

2014-01-21  Thomas Quinot  <quinot@adacore.com>

	* sinfo.ads (No_Ctrl_Actions): Clarify documentation (flag also
	suppresses usage of primitive _assign for tagged types).
	* exp_aggr.adb (Build_Array_Aggr_Code.Gen_Assign): Set
	No_Ctrl_Actions for a tagged type that does not require
	finalization, as we want to disable usage of _assign (which
	may cause undesirable discriminant checks on an uninitialized,
	invalid target).

2014-01-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb: Reject invariant'class on completion.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206878 138bc75d-0d04-0410-961f-82ee72b054a4
2014-01-21  Robert Dewar  <dewar@adacore.com>

	* exp_aggr.adb: Minor reformatting.

2014-01-21  Johannes Kanig  <kanig@adacore.com>

	* gnat1drv.adb (Gnat1drv) remove obsolete reference to -gnatd.H.

2014-01-21  Bob Duff  <duff@adacore.com>

	* gnat_ugn.texi: Document the "checks" attribute in gnat2xml.

2014-01-21  Steve Baird  <baird@adacore.com>

	* gnat_rm.texi: Improve description of SPARK_Mode pragma.

2014-01-21  Vincent Celier  <celier@adacore.com>

	* prj-part.adb (Parse_Single_Project): Accept to extend a project
	if it has only be imported by an project being extended. When a
	project that has only been imported by a project being extended
	is imported by another project that is not being extended,
	reset the previous indication, so that it will be an error if
	this project is extended later.
	* prj-tree.adb (Create_Project): Include component From_Extended
	in table Projects_HT
	* prj-tree.ads (Project_Name_And_Node): New Boolean component
	From_Extended

2014-01-21  Robert Dewar  <dewar@adacore.com>

	* atree.ads, atree.adb: Add Node33 and Set_Node33.
	* einfo.ads, einfo.adb (SPARK_Pragma): New field (SPARK_Aux_Pragma):
	New field (SPARK_Pragma_Inherited): New flag
	(SPARK_Aux_Pragma_Inherited): New flag (SPARK_Mode_Pragmas):
	Removed.
	* lib.ads, lib.adb: Remove SPARK_Mode_Pragma, no longer used.
	* opt.ads (SPARK_Mode_Pragma): New global variable.
	* sem.ads: Add Save_SPARK_Mode_Pragma field to Scope_Stack_Entry.
	* sem_ch3.adb: Use new SPARK_Mode data structures.
	* sem_ch6.adb: Set SPARK_Mode fields in subprogram specs and bodies.
	* sem_ch7.adb: Set SPARK_Mode fields in package spec and body entities.
	* sem_ch8.adb (Push_Scope): Save SPARK_Mode_Pragma.
	(Pop_Scope): Restore SPARK_Mode_Pragma.
	* sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Rewrite for
	new data structures.

2014-01-21  Arnaud Charlet  <charlet@adacore.com>

	* back_end.adb: Undo previous change, not needed. Minor reformatting.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206879 138bc75d-0d04-0410-961f-82ee72b054a4
include
	* ansidecl.h (ANSI_PROTOTYPES, PTRCONST, LONG_DOUBLE, PARAMS)
	(VPARAMS, VA_START, VA_OPEN, VA_CLOSE, VA_FIXEDARG, CONST)
	(VOLATILE, SIGNED, PROTO, EXFUN, DEFUN, DEFUN_VOID, AND, DOTS)
	(NOARGS): Don't define.
	* libiberty.h (expandargv, writeargv): Don't use PARAMS.
libiberty
	* _doprint.c (checkit): Use stdarg, not VA_* macros.
	* asprintf.c (asprintf): Use stdarg, not VA_* macros.
	* concat.c (concat_length, concat_copy, concat_copy2, concat)
	(reconcat): Use stdarg, not VA_* macros.
	* snprintf.c (snprintf): Use stdarg, not VA_* macros.
	* vasprintf.c (checkit): Use stdarg, not VA_* macros.
	* vsnprintf.c (checkit): Use stdarg, not VA_* macros.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206881 138bc75d-0d04-0410-961f-82ee72b054a4
2014-01-21  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Fix problem
	with pragma or aspect that applies to package spec or subprogram
	spec.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206885 138bc75d-0d04-0410-961f-82ee72b054a4
2014-01-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* aspects.adb Add entries for Async_Readers, Async_Writers,
	Effective_Reads and Effective_Writes in table Canonical_Aspect.
	* aspects.ads Add entries for Async_Readers, Async_Writers,
	Effective_Reads and Effective_Writes in tables Aspect_Id,
	Aspect_Names, Aspect_Delay and Implementation_Defined_Aspect.
	* atree.adb (Ekind_In): New version with 8 parameters.
	(Node34): New routine.
	(Set_Node34): New routine.
	* atree.ads (Ekind_In): New version with 8 parameters.
	(Node34): New routine.
	(Set_Node34): New routine.
	* einfo.adb Contract is now Node34.
	(Contract): Update the assertion and node usage.
	(Get_Pragma): Include pragmas Async_Readers, Async_Writers,
	Effective_Reads and Effective_Writes.
	(Set_Contract): Update the assertion and node usage.
	(Write_Field24_Name): Remove the output for a contract.
	(Write_Field34_Name): Add output for a contract.
	* einfo.ads Contract is now Node34. Update the comment on
	attribute usage and related node structures.
	(Get_Pragma): Update the comment on usage.
	* par-prag.adb (Prag): Pragmas Async_Readers, Async_Writers,
	Effective_Reads and Effective_Writes do not require special
	processing by the parser.
	* sem_ch3.adb (Analyze_Variable_Contract): New routine.
	(Analyze_Declarations): Analyze the contract of a variable at
	the end of the declarative region.
	(Analyze_Object_Declaration): Create a contract for a variable.
	* sem_ch6.adb (Analyze_Subprogram_Contract): Update the retrieval
	of classification pragmas.
	(Process_Formals): Detect an illegal
	use of a volatile object as a formal in a function.
	* sem_ch12.adb (Instantiate_Object): Detect an illegal use of
	a volatile object as an actual in generic instantiation.
	* sem_prag.adb Add entries for Async_Readers, Async_Writers,
	Effective_Reads and Effective_Writes in table Sig_Flags.
	(Analyze_External_State_In_Decl_Part): New routine.
	(Analyze_Global_Item): Detect an illegal use of a volatile object
	as a global item of a function.
	(Analyze_Pragma): Reimplement
	pragma Abstract_State. Add support for pragmas Async_Readers,
	Async_Writers, Effective_Reads and Effective_Writes.
	(Check_External_Properties): New routine.
	* sem_prag.ads (Analyze_External_State_In_Decl_Part): New routine.
	(Check_External_Properties): New routine.
	* sem_res.adb (Resolve_Actuals): Detect an illegal use of a
	volatile object as an actual in a call.
	(Resolve_Entity_Name):
	Add local variables Par, Prev and Usage_OK. Detect illegal
	contexts of volatile objects.
	* sem_util.adb (Add_Contract_Item): Add support for
	pragmas associated with the contract of a variable.
	(Async_Readers_Enabled): New routine.
	(Async_Writers_Enabled): New routine.
	(Effective_Reads_Enabled): New routine.
	(Effective_Writes_Enabled): New routine.
	(Has_Enabled_Property):
	New routine.
	(Is_Unchecked_Conversion_Instance): New routine.
	(Is_Volatile_Object): Add support for entities that may denote
	a volatile object.
	* sem_util.ads (Add_Contract_Item): Update the
	comment on usage.
	(Async_Readers_Enabled): New routine.
	(Async_Writers_Enabled): New routine.
	(Effective_Reads_Enabled): New routine.
	(Effective_Writes_Enabled): New routine.
	(Is_Unchecked_Conversion_Instance): New routine.
	* sinfo.ads Update the comment on the structure of N_Contract.
	* snames.ads-tmpl Add predefined names for Async_Readers,
	Async_Writers, Effective_Reads and Effective_Writes. Add
	pragma ids for Async_Readers, Async_Writers, Effective_Reads
	and Effective_Writes.

2014-01-21  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Eval_Op_Expon): Use CRT_Safe_Compile_Time_Known_Value
	* sem_eval.adb (Compile_Time_Known_Value): Remove special
	handling of CRT mode (CRT_Safe_Compile_Time_Known_Value): New
	function (Eval_Op_Expon): Add CRT_Safe in call to Test_Foldable
	(Test_Foldable): Add CRT_Safe parameter
	* sem_eval.ads (Compile_Time_Known_Value): Remove special
	handling of CRT mode.
	(CRT_Safe_Compile_Time_Known_Value): New function.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206886 138bc75d-0d04-0410-961f-82ee72b054a4
2014-01-21  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, sem_prag.adb, sem_prag.ads, sem_ch12.adb, sem_res.adb,
	sem_ch6.adb, a-except-2005.adb: Minor reformatting.

2014-01-21  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): When a class-wide
	object is declared, it is rewritten as a renaming of an dynamic
	expression that wraps the initial value.  The renaming declaration
	is first given an internal name, to prevent collisions with the
	entity already declared, and then the name is modified to reflect
	the original one. the modification of the name must preserve
	the source location of the original, to prevent spurious errors
	when compiling with style checks if the declaration involves
	more than one entity.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206887 138bc75d-0d04-0410-961f-82ee72b054a4
2014-01-21  Thomas Quinot  <quinot@adacore.com>

	* exp_pakd.adb: Update comment, minor reformatting.

2014-01-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch3.adb (Analyze_Variable_Contract): Trigger the volatile
	object check when SPARK_Mode is on.
	* sem_ch6.adb (Process_Formals): Trigger the volatile object
	check when SPARK_Mode is on.
	* sem_ch12.adb (Instantiate_Object): Trigger the volatile object
	check when SPARK_Mode is on.
	* sem_ch13.adb (Analyze_Aspect_Specifications): Insert the
	corresponding pragma of aspect SPARK_Mode in the visible
	declarations of a package declaration.
	* sem_prag.adb (Analyze_Pragma): Trigger the volatile object
	check when SPARK_Mode is on.
	* sem_res.adb (Resolve_Actuals): Trigger the volatile object
	check when SPARK_Mode is on.
	(Resolve_Entity_Name): Trigger
	the volatile object check when SPARK_Mode is on.

2014-01-21  Robert Dewar  <dewar@adacore.com>

	* a-except-2005.adb: Minor reformatting


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206888 138bc75d-0d04-0410-961f-82ee72b054a4
2014-01-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Analyze_External_Property): Add processing for "others".
	(Analyze_Pragma): Update the grammar of pragma Abstract_State to
	include "others".

2014-01-21  Arnaud Charlet  <charlet@adacore.com>

	* gnat_ugn.texi: Minor updates.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206889 138bc75d-0d04-0410-961f-82ee72b054a4
2014-01-21  Robert Dewar  <dewar@adacore.com>

	* checks.adb, sem_util.ads, sem_ch4.adb: Minor reformatting.

2014-01-21  Pascal Obry  <obry@adacore.com>

	* projects.texi: Minor typo fix.

2014-01-21  Thomas Quinot  <quinot@adacore.com>

	* freeze.adb (Check_Component_Storage_Order): If a record type
	has an explicit Scalar_Storage_Order attribute definition clause,
	reject any component that itself is of a composite type and does
	not have one.

2014-01-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Generate_Parent_Reference): Make public so it
	can be used to generate proper cross-reference information for
	the parent units of proper bodies.

2014-01-21  Thomas Quinot  <quinot@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity): For a modular
	type that represents a bit packed array type, propagate the
	reverse storage order flag to the generated wrapper record.
	* exp_pakd.adb (Expand_Packed_Element_Set,
	Expand_Packed_Element_Reference): No byte swapping required in
	the front-end for the case of a reverse storage order array,
	as this is now handled uniformly in the back-end.  However we
	still need to swap back an extracted element if it is itself a
	nested composite with reverse storage order.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206890 138bc75d-0d04-0410-961f-82ee72b054a4
2014-01-21  Thomas Quinot  <quinot@adacore.com>

	* gnat_rm.texi (Scalar_Storage_Order): Update documentation.

2014-01-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Set_Instance_Env): In Ada 2012 mode, preserve
	the value of Assertions_Enabled flag when compiling an instance of
	an internal unit. This facilitates the use of pre/postconditions
	in generic internal units, such as the new elementary function
	libraries.

2014-01-21  Robert Dewar  <dewar@adacore.com>

	* exp_aggr.adb: Minor reformatting.
	* sem_attr.adb: Minor reformatting.
	* sem_res.adb: Minor comment addition.
	* einfo.adb: Minor comment updates.
	* freeze.adb: Minor reformatting and code reorganization.

2014-01-21  Ed Schonberg  <schonberg@adacore.com>

	* par-ch4.adb (P_If_Expression): Handle more gracefully an
	elsif clause that does not have an else part.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206891 138bc75d-0d04-0410-961f-82ee72b054a4
2014-01-21  Robert Dewar  <dewar@adacore.com>

	* par-ch4.adb (P_If_Expression): Rewritten to improve error recovery.
	* par-ch5.adb (P_Condition): New version with expression prescanned.
	* par.adb (P_Condition): New version with expression prescanned.

2014-01-21  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Document that Allow_Integer_Address is ignored
	if Address is not a private type.
	* sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address):
	Ignore pragma if System.Address is not a private type.

2014-01-21  Arnaud Charlet  <charlet@adacore.com>

	* namet.ads (Name_Len): Initialize to 0 to avoid accessing an
	uninitialized value.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206892 138bc75d-0d04-0410-961f-82ee72b054a4
Fix ChangeLog entry, moving it from top-level ChangeLog to
gcc/ChangeLog.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206893 138bc75d-0d04-0410-961f-82ee72b054a4
libgcc/
	* config.host (tmake_file): add t-slibgcc-libgcc for xtensa*-*-linux*.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206895 138bc75d-0d04-0410-961f-82ee72b054a4
	PR target/59003
	* config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
	smaller than size, perform several stores or loads and stores
	at dst + count - size to store or copy all of size bytes, rather
	than just last modesize bytes.

	* gcc.dg/tree-prof/pr59003.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206896 138bc75d-0d04-0410-961f-82ee72b054a4
2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/59858
	* lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
	ira_class_hard_regs_num.
	(process_alt_operands): Increase reject for dying matched operand.

2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/59858
	* gcc.target/arm/pr59858.c: New.



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


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206900 138bc75d-0d04-0410-961f-82ee72b054a4
	PR libstdc++/56267
	* include/bits/hashtable.h (__cache_default): Do not depend on
	whether the hash function is DefaultConstructible or CopyAssignable.
	(_Hashtable): Adjust static assertions.
	* doc/xml/manual/containers.xml (containers.unordered.cache): Update.
	* testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
	dg-error line number.
	* testsuite/23_containers/unordered_set/
	not_default_constructible_hash_neg.cc: Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206904 138bc75d-0d04-0410-961f-82ee72b054a4
2014-01-21  Tim Shen  <timshen91@gmail.com>

	* include/bits/regex.tcc: Remove incorrect `nosubs` handling.
	* include/bits/regex_scanner.tcc: Handle `nosubs` correctly.
	* testsuite/28_regex/constants/syntax_option_type.cc: Add a test case.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206906 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
	(mips_move_from_gpr_cost): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206907 138bc75d-0d04-0410-961f-82ee72b054a4
2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/59896
	* lra-constraints.c (process_alt_operands): Check unused note for
	matched operands of insn with no output reloads.

2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/59896
	* gcc.target/arm/pr59896.c: New.



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