Compute extend family info for AMD CPU and update for BTVER2

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

	* checks.adb (Activate_Overflow_Check): Remove
	Check_Float_Overflow processing.
	(Apply_Scalar_Range_Check): Ditto.
	(Generate_Range_Check): Ditto.
	* exp_ch4.adb (Expand_N_Op_Add): Add call to
	Check_Float_Op_Overflow.
	(Expand_N_Op_Divide): ditto.
	(Expand_N_Op_Multiply): ditto.
	(Expand_N_Op_Subtract): ditto.
	* exp_util.ads, exp_util.adb (Check_Float_Op_Overflow): New procedure.
	* sem_attr.adb (Analyze_Attribute, case Pred): Make sure
	Do_Range_Check is set for floating-point case in -gnatc or
	GNATprove mode.
	(Analyze_Attribute, case Succ): Make sure
	Do_Range_Check is set for floating-point case in -gnatc or
	GNATprove mode.
	* sem_res.adb (Resolve_Type_Conversion): Make sure Do_Range_Check
	flag is set for real to integer conversion in GNATprove or
	-gnatc mode.

2014-08-04  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications): Resolve
	the expression of an Import or Export aspect as type Boolean
	and require it to be static. Add ??? comment. Also, set the
	Is_Exported flag when appropriate.



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

	* exp_attr.adb (Expand_N_Attribute_Reference, case Pred):
	Remove special test for Float'First, no longer required.
	(Expand_N_Attribute_Reference, case Succ): Remove special test
	for Float'First, no longer required.
	* s-fatgen.adb (Pred): return infinity unchanged.
	(Succ): ditto.

2014-08-04  Claire Dross  <dross@adacore.com>

	* sem_ch12.adb (Analyze_Associations): Defaults should only be
	used if there is no explicit match.
	* exp_util.adb (Get_First_Parent_With_Ext_Axioms_For_Entity):
	Also check for pragma external_axiomatization on generic units.



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

	* sem_ch12.adb: Minor reformatting.

2014-08-04  Arnaud Charlet  <charlet@adacore.com>

	* exp_util.adb, checks.adb (Check_Float_Op_Overflow): Add special
	expansion in CodePeer_Mode.
	(Selected_Range_Checks): Add handling of overflow checks in
	CodePeer_Mode.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213547 138bc75d-0d04-0410-961f-82ee72b054a4
2014-08-04  Arnaud Charlet  <charlet@adacore.com>

	* exp_util.adb (Check_Float_Op_Overflow): No-op in codepeer
	mode for now, to revert to previous behavior.
	* checks.adb: Revert previous change, no longer needed.

2014-08-04  Robert Dewar  <dewar@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Don't set
	Check_Float_Overflow if Machine_Oveflows_On_Target is True.
	* sem_prag.adb (Analyze_Pragma, case Check_Float_Overflow): Don't
	set Check_Float_Overflow if Machine_Oveflows_On_Target is True.
	* switch-c.adb (Scan_Front_End_Switches): Don't set
	Check_Float_Overflow if Machine_Oveflows_On_Target is True.

2014-08-04  Vincent Celier  <celier@adacore.com>

	* prj-attr.adb: Add new default indications for
	attributes Object_Dir, Exec_Dir, Source_Dirs and Target.
	(Attribute_Default_Of): New function (Initialize): Set the
	default for those attributes that have one specified.
	* prj-attr.ads (Attribute_Data): New component Default.
	* prj-proc.adb (Expression): Take into account the new defaults
	for attributes Object_Dir, Exec_Dir and Source_Dirs.
	* prj-strt.adb (Attribute_Reference): Set the default for
	the attribute.
	* prj-tree.ads, prj-tree.adb (Default_Of): New function.
	(Set_Default_Of): New procedure.
	* prj.adb (The_Dot_String): New global Name_Id variable,
	initialized in procedure Initialize.
	(Dot_String): New function
	(Initialize): Initialize The_Dot_String.
	(Reset): Create the string list Shared.Dot_String_List.
	* prj.ads (Attribute_Default_Value): New enumeration type.
	(Project_Qualifier): Change enumeration value Dry to Abstract_Project.
	(Dot_String): New function.
	(Shared_Project_Tree_Data): New string list component Dot_String_List.
	* projects.texi: Document new defaults for attribute Object_Dir,
	Exec_Dir and Source_Dirs.



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

	* prj-proc.adb, prj-part.adb, prj-strt.adb, prj.adb, prj.ads,
	prj-attr.adb, prj-attr.ads: Minor reformatting.

2014-08-04  Yannick Moy  <moy@adacore.com>

	* expander.adb (Expand): Always perform special
	expansion in GNATprove mode, even when doing pre-analysis.

2014-08-04  Thomas Quinot  <quinot@adacore.com>

	* repinfo.adb (List_Scalar_Storage_Order): List bit order if
	not default. Also list bit order if SSO is specified. Do not
	assume that bit order is always equal to scalar storage order.

2014-08-04  Thomas Quinot  <quinot@adacore.com>

	* freeze.adb (Set_SSO_From_Default): Do not set scalar storage
	order to reverse SSO for a type that has an explicit native
	Bit_Order.

2014-08-04  Doug Rupp  <rupp@adacore.com>

	* cal.c: Macro check for VxWorks7.
	* init.c (getpid): Likewise.
	* mkdir.c (__gnat_mkdir): Likewise.
	* sysdep.c (__gnat_is_file_not_found_error): Likewise.

2014-08-04  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): Inhibit generation
	of an invariant check in the case where No_Initialization is set,
	since the object is uninitialized.

2014-08-04  Thomas Quinot  <quinot@adacore.com>

	* snames.ads-tmpl (Default_Scalar_Storage_Order): Now an attribute
	name, in addition to a pragma name.
	* snames.adb-tmpl (Get_Pragma_Id, Is_Configuration_Pragma_Name,
	Is_Pragma_Name): Adjust accordingly.
	* sem_attr.ads, sem_attr.adb, exp_attr.adb
	(Attribute_Default_Scalar_Storage_Order): Add handling of new
	attribute.
	* gnat_rm.texi: Document the above.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213549 138bc75d-0d04-0410-961f-82ee72b054a4
2014-08-04  Vincent Celier  <celier@adacore.com>

	* prj-dect.adb (Parse_Case_Construction): It is no longer
	an error if the variable for a case construction is not
	typed, only if the variable value is not a single string. Call
	Parse_Choice_List and End_Case_Construction with the new parameter
	to indicate that the variable is typed.
	* prj-strt.adb (End_Case_Construction): Only check the labels
	if the variable is typed.  If the variable is not typed,
	issue a warning when there is no "when others" allternative.
	(Parse_Choice_List): Manage the labels only if the variable
	is typed.
	* prj-strt.ads (End_Case_Construction): New Boolean parameter
	String_Type.
	(Parse_Choice_List): Ditto.

2014-08-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb: Additional fix to Check_Predicate_Use.

2014-08-04  Vincent Celier  <celier@adacore.com>

	* projects.texi: Update documentation of case constructions with
	variables that are not typed.

2014-08-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Build_Class_Wide_Wrapper): If the operator carries
	an Eliminated pragma, indicate that the wrapper is also to be
	eliminated, to prevent spurious errors when using gnatelim on
	programs that include box-initialization of equality operators
	(consequence of AI05-071)..

2014-08-04  Robert Dewar  <dewar@adacore.com>

	* checks.adb (Activate_Overflow_Check): Handle floating-point
	case correctly.
	* checks.ads (Activate_Overflow_Check): Clarify handling of
	floating-point cases.
	* exp_util.adb (Check_Float_Op_Overflow): Reset Do_Overflow_Check
	flag if we generate an explicit overflow check (for
	Check_Float_Overflow mode).



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213550 138bc75d-0d04-0410-961f-82ee72b054a4
[sched-deps] Generalise usage of macro fusion to work on any two insns.

	* sched-deps.c (try_group_insn): Generalise macro fusion hook usage
	to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
	(sched_analyze_insn): Update use of try_group_insn to
	sched_macro_fuse_insns.
	* config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
	arguments that are not conditional jumps.


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

	* prj-strt.adb, prj-strt.ads, sem_attr.adb: Minor reformatting.

2014-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* aspects.adb Add an entry in table Canonical_Aspect for
	Default_Initial_Condition.
	* aspects.ads Add an entry in tables Aspect_Id, Aspect_Argument,
	Aspect_Names and Aspect_Delay for Default_Initial_Condition.
	* einfo.adb Flag3 is now Has_Default_Init_Cond. Flag132
	is now Is_Default_Init_Cond_ Procedure. Flag133 is now
	Has_Inherited_Default_Init_Cond.
	(Default_Init_Cond_Procedure): New routine.
	(Has_Default_Init_Cond): New routine.
	(Has_Inherited_Default_Init_Cond): New routine.
	(Is_Default_Init_Cond_Procedure): New routine.
	(Set_Default_Init_Cond_Procedure): New routine.
	(Set_Has_Default_Init_Cond): New routine.
	(Set_Has_Inherited_Default_Init_Cond): New routine.
	(Set_Is_Default_Init_Cond_Procedure): New routine.
	(Write_Entity_Flags): Output all the new flags.
	* einfo.ads New attributes Default_Init_Cond_Procedure,
	Has_Inherited_Default_Init_Cond and Is_Default_Init_Cond_Procedure
	along with usage in nodes.
	(Default_Init_Cond_Procedure): New routine.
	(Has_Default_Init_Cond): New routine and pragma Inline.
	(Has_Inherited_Default_Init_Cond): New routine and
	pragma Inline.
	(Is_Default_Init_Cond_Procedure): New routine and
	pragma Inline.
	(Set_Default_Init_Cond_Procedure): New routine.
	(Set_Has_Default_Init_Cond): New routine and pragma Inline.
	(Set_Has_Inherited_Default_Init_Cond): New routine and pragma Inline.
	(Set_Is_Default_Init_Cond_Procedure): New routine and pragma Inline.
	* exp_ch3.adb (Expand_N_Object_Declaration): New constant
	Next_N. Generate a call to the default initial condition procedure
	if the object's type is subject to the pragma.	(Freeze_Type):
	Generate the body of the default initial condition procedure or
	inherit the spec from a parent type.
	* exp_ch7.adb Add with and use clause for Exp_Prag.
	(Expand_Pragma_Initial_Condition): Removed.
	* exp_prag.ads, exp_prag.adb (Expand_Pragma_Initial_Condition): New
	routine.
	* par-prag.adb (Prag): Pragma Default_Initial_Condition does
	not need special treatment by the parser.
	* sem_ch3.adb (Build_Derived_Record_Type): Propagate the
	attributes related to pragma Default_Initial_Condition to the
	derived type.
	(Process_Full_View): Propagate the attributes
	related to pragma Default_Initial_Condition to the full view.
	* sem_ch7.adb (Analyze_Package_Specification): Build the
	declaration of the default initial condition procedure for all
	types that qualify or inherit the one from the parent type.
	* sem_ch13.adb (Analyze_Aspect_Specifications):
	Add processing for aspect Default_Initial_Condition.
	(Check_Aspect_At_Freeze_Point): Aspect
	Default_Initial_Condition does not require delayed analysis.
	(Replace_Type_References_Generic): Moved to spec.
	* sem_ch13.ads (Replace_Type_References_Generic): Moved from body.
	* sem_prag.adb Add an entry in table Sif_Glags for
	Default_Initial_Condition.
	(Analyze_Pragma): Pragma
	Default_Initial_Condition is now part of assertion
	policy. Add processing for pragma Default_Initial_Condition.
	(Is_Valid_Assertion_Kind): Pragma Default_Initial_Condition is
	now recognized as a proper assertion policy.
	* sem_util.ads, sem_util.adb (Build_Default_Init_Cond_Call): New
	routine.
	(Build_Default_Init_Cond_Procedure_Body): New routine.
	(Build_Default_Init_Cond_Procedure_Declaration): New routine.
	(Inherit_Default_Init_Cond_Procedure): New routine.
	* snames.ads-tmpl Add new predefined name and pragma id for
	Default_Initial_Condition.



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

	* exp_prag.adb, sem_ch7.adb, einfo.adb, sem_prag.adb, sem_util.adb,
	exp_ch3.adb: Minor reformatting.



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

	* exp_ch3.adb (Build_CPP_Init_Procedure): Remove
	Flag_Decl. Do not analyze the declaration of the flag as it is
	not part of the tree yet, instead add it to the freeze actions
	of the C++ type.

2014-08-04  Robert Dewar  <dewar@adacore.com>

	* checks.adb (Apply_Scalar_Range_Check): Make sure we handle
	case of OUT and IN OUT parameter correctly (where Source_Typ is
	set), we were missing one case where a check must be applied.

2014-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch8.adb (Build_Class_Wide_Wrapper): Update the comment on
	the generated code. Instead of hiding the renaming and using the
	wrapper as the proper association, have the subprogram renaming
	alias the wrapper.
	(Build_Spec): The entity of the wrapper is
	now derived from the entity of the related primitive.

2014-08-04  Emmanuel Briot  <briot@adacore.com>

	* s-regpat.adb: s-regpat.adb (Parse): fix incorrect link when
	using non-capturing groups.

2014-08-04  Ed Schonberg  <schonberg@adacore.com>

	* inline.adb (Build_Body_To_Inline): Remove Unmodified and
	related pragmas before copying the original body, to prevent
	spurious errors when the pragmas apply to formals that will not
	appear in the inlined body.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213554 138bc75d-0d04-0410-961f-82ee72b054a4
PR 61713: ICE when expanding single-threaded version of atomic_test_and_set.

	PR target/61713
	* gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
	move to subtarget in serial version if result is ignored.

	PR target/61713
	* gcc.dg/pr61756.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213555 138bc75d-0d04-0410-961f-82ee72b054a4
Fix ChangeLog date from r213551.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213556 138bc75d-0d04-0410-961f-82ee72b054a4
[doc] Document clrsb optab and fix some inconsistencies.

	* doc/md.texi (clrsb): Document.
	(clz): Change reference to x into operand 1.
	(ctz): Likewise.
	(popcount): Likewise.


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

	* s-fatgen.adb: Minor reformatting.

2014-08-04  Arnaud Charlet  <charlet@adacore.com>

	* exp_util.adb (Is_Possibly_Unaligned_Object): Always return
	False on .NET.

2014-08-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Loop_Statement): Set properly the kind of
	the loop parameter for element iterators over containers and
	arrays, so that improper uses of it are detected in the loop
	body when expansion is disabled.
	* exp_ch5.adb (Expand_Iterator_Loop): The entity kind of the
	generated cursor is that of the analyzed loop parameter.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213558 138bc75d-0d04-0410-961f-82ee72b054a4
2014-08-04  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb: minor reformatting.
	* einfo.ads, einfo.adb (Is_Processed_Transient): Applies to loop
	parameters.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213559 138bc75d-0d04-0410-961f-82ee72b054a4
2014-08-04  Arnaud Charlet  <charlet@adacore.com>

	* sem_scil.ads: Improve comments.
	* sem_ch4.adb (Analyze_Equality_Op): Add support for
	Allow_Integer_Address (equality between Address and Integer).

2014-08-04  Yannick Moy  <moy@adacore.com>

	* a-cfhama.adb, a-cforse.adb: Minor fixes to avoid using prefix
	notation on untagged objects.
	* sem.ads: Update comment.
	* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do
	not inline subprograms declared in the visible part of a package.



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

	* exp_ch5.adb, sem_ch5.adb, einfo.ads: Minor reformatting.

2014-08-04  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch4.adb (Operator_Check): Refine previous change.



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

	* sem_ch5.adb: Minor reformatting.

2014-08-04  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Late_Freeze_Subprogram): Following AI05-151,
	a function can return a limited view of a type declared
	elsewhere. In that case the function cannot be frozen at the end
	of its enclosing package. If its first use is in a different unit,
	it cannot be frozen there, but if the call is legal the full view
	of the return type is available and the subprogram can now be
	frozen. However the freeze node cannot be inserted at the point
	of call, but rather must go in the package holding the function,
	so that the backend can process it in the proper context.



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

	* gnat_ugn.texi: Clarify documentation on assertions.

2014-08-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Resolve_Record_Aggregate, Get_Value): Warn
	if a component association has a box initialization when the
	component type has no default initialization, either through an
	initial value, an aspect, or an implicit initialization procedure.

2014-08-04  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb: Code clean up.



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