Commit Graph

145437 Commits

Author SHA1 Message Date
Marc Glisse
ce0e66ffb2 min(-x, -y), min(~x, ~y)
2016-04-21  Marc Glisse  <marc.glisse@inria.fr>

gcc/
	* match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
	New transformations.

gcc/testsuite/
	* gcc.dg/tree-ssa/minmax-2.c: New testcase.

From-SVN: r235332
2016-04-21 10:45:11 +00:00
Arnaud Charlet
6c7f7b8c69 [multiple changes]
2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Match_Constituent): Treat a constant as a legal
	constituent even if it is not to prevent spurious errors.

2016-04-21  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch4.adb: Minor typo fixes and reformatting.

2016-04-21  Dmitriy Anisimkov  <anisimko@adacore.com>

	* g-calend.ads (No_Time): The same value in any timezone.
	* g-socket.adb (Raise_Host_Error): Remove ending
	dot from original error message before append colon delimited
	host name.

From-SVN: r235331
2016-04-21 12:27:54 +02:00
Arnaud Charlet
0310af44bb [multiple changes]
2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch3.adb: Code cleanup.
	* sem_ch6.adb: Code cleanup.
	(Is_Matching_Limited_View): New routine.
	(Matches_Limited_With_View): Reimplemented.
	* sem_ch10.adb (Decorate_Type): Code cleanup.

2016-04-21  Doug Rupp  <rupp@adacore.com>

	* tracebak.c (PPC ELF): Add macro defs for lynxos178e.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Try_Container_Indexing): If there are overloaded
	indexing functions, collect all overloadings of the call firts,
	and then transfer them to indexing node, to prevent interleaving
	of the set of interpretations of the nodes involved.
	* sem_res.adb (Resolve): Suppress cascaded errors that report
	ambiguities when one of the actuals in an overloaded generatlized
	indexing operation is illegal and has type Any_Type, as is done
	for similar cascaded errors in subprogram calls.
	(Valid_Tagged_Conversion): Cleanup conversion checks when one
	of the types involved is a class-wide subtype.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Load_Parent_Of_Generic): When looking for the
	subprogram declaration within a wrapper package, skip pragmas
	that may have been generated by aspect specifications on the
	generic instance.

2016-04-21  Javier Miranda  <miranda@adacore.com>

	* exp_aggr.adb (Component_Not_OK_For_Backend): Generating C
	code return True for array identifiers since the backend needs
	to initialize such component by means of memcpy().

From-SVN: r235330
2016-04-21 12:25:59 +02:00
Arnaud Charlet
150346bd8d a-tasatt.adb, [...] (Fast_Path): Rewritten to avoid reading potentially uninitialized memory.
2016-04-21  Arnaud Charlet  <charlet@adacore.com>

	* a-tasatt.adb, a-tasatt.ads (Fast_Path): Rewritten to avoid reading
	potentially uninitialized memory.
	* sem_ch3.adb: Minor style fix in comment.

From-SVN: r235329
2016-04-21 12:21:56 +02:00
Arnaud Charlet
c25f170d2d gnat_rm.texi, [...]: Update doc.
* gnat_rm.texi, gnat_ugn.texi,
        doc/gnat_ugn/gnat_project_manager.rst,
        doc/gnat_ugn/building_executable_programs_with_gnat.rst,
        doc/gnat_ugn/gnat_and_program_execution.rst,
        doc/gnat_ugn/gnat_utility_programs.rst,
        doc/gnat_ugn/the_gnat_compilation_model.rst,
        doc/gnat_rm/implementation_defined_attributes.rst,
        doc/gnat_rm/standard_and_implementation_defined_restrictions.rst,
        doc/gnat_rm/implementation_defined_pragmas.rst,
        doc/gnat_rm/the_gnat_library.rst,
        doc/gnat_rm/implementation_defined_aspects.rst: Update doc.
        * doc/Makefile: Cleanups.

From-SVN: r235328
2016-04-21 12:06:40 +02:00
Arnaud Charlet
f76647c2ec [multiple changes]
2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_pakd.adb, sem_ch13.adb: Minor reformatting.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* exp_dbug.adb, exp_dbug.ads (Qualify_Entity_Name): Add suffixes to
	disambiguate local variables that may be hidden from inner visibility
	by nested block declarations or loop variables.

From-SVN: r235327
2016-04-21 11:54:42 +02:00
Arnaud Charlet
22a4f9d54d [multiple changes]
2016-04-21  Jerome Lambourg  <lambourg@adacore.com>

	* s-soflin.adb: Initialize the Stack_Limit global variable.

2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* lib-writ.adb: Minor reformatting.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* exp_pakd.adb (Compute_Number_Components): New function to
	build an expression that computes the number of a components of
	an array that may be multidimensional.
	(Expan_Packed_Eq): Use it.

2016-04-21  Arnaud Charlet  <charlet@adacore.com>

	* g-traceb.ads: Update list of supported platforms.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Add_Predicates): if the type is declared in
	an inner package it may be frozen outside of the package, and
	the generated pragma has not been analyzed yet, the expression
	for the predicate must be captured and added to the predicate
	function at this point.

2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* contracts.adb (Analyze_Package_Body_Contract): Do not check
	for a missing package refinement because 1) packages do not have
	"refinement" and 2) the check for proper state refinement is
	performed in a different place.
	* einfo.adb (Has_Non_Null_Visible_Refinement): Reimplemented.
	(Has_Null_Visible_Refinement): Reimplemented.
	* sem_ch3.adb (Analyze_Declarations): Determine whether all
	abstract states have received a refinement and if not, emit
	errors.
	* sem_ch7.adb (Analyze_Package_Declaration): Code
	cleanup. Determine whether all abstract states of the
	package and any nested packages have received a refinement
	and if not, emit errors.
	(Requires_Completion_In_Body): Add new formal parameter
	Do_Abstract_States. Update the comment on usage. Propagate the
	Do_Abstract_States flag to all Unit_Requires_Body calls.
	(Unit_Requires_Body): Remove formal
	parameter Ignore_Abstract_States. Add new formal paramter
	Do_Abstract_States. Propagate the Do_Abstract_States flag to
	all Requires_Completion_In calls.
	* sem_ch7.ads (Unit_Requires_Body): Remove formal
	parameter Ignore_Abstract_States. Add new formal paramter
	Do_Abstract_States. Update the comment on usage.
	* sem_ch9.adb (Analyze_Single_Protected_Declaration): Do
	not initialize the constituent list as this is now done on a
	need-to-add-element basis.
	(Analyze_Single_Task_Declaration):
	Do not initialize the constituent list as this is now done on
	a need-to-add-element basis.
	* sem_ch10.adb (Decorate_State): Do not initialize the constituent
	lists as this is now done on a need-to-add-element basis.
	* sem_prag.adb (Analyze_Constituent): Set the
	refinement constituents when adding a new element.
	(Analyze_Part_Of_In_Decl_Part): Set the Part_Of constituents when
	adding a new element.
	(Analyze_Part_Of_Option): Set the Part_Of
	constituents when adding a new element.
	(Analyze_Pragma): Set the Part_Of constituents when adding a new
	element.
	(Check_Constituent_Usage (all versions)): Reimplemented.
	(Collect_Constituent): Set the refinement constituents when adding
	a new element.
	(Create_Abstract_State): Do not initialize the
	constituent lists as this is now done on a need-to-add-element basis.
	(Propagate_Part_Of): Set the Part_Of constituents when
	adding a new element.
	* sem_util.adb (Check_State_Refinements): New routine.
	(Has_Non_Null_Refinement): Reimplemented.
	(Has_Null_Refinement): Reimplemented.
	(Requires_State_Refinement): Removed.
	* sem_util.ads (Check_State_Refinements): New routine.
	(Requires_State_Refinement): Removed.

From-SVN: r235326
2016-04-21 11:46:18 +02:00
Hristian Kirtchev
c4dc212506 lib-writ.adb, [...]: Minor reformatting and code cleanup.
2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* lib-writ.adb, sem_ch6.adb: Minor reformatting and code cleanup.
	* sem.adb: Fix comment.

From-SVN: r235325
2016-04-21 11:41:45 +02:00
Arnaud Charlet
c42aba6bb3 [multiple changes]
2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Analyze_Subtype_Declaration): A subtype
	declaration with no aspects, whose subtype_mark is a subtype
	with predicates, inherits the list of subprograms for the type.

2016-04-21  Arnaud Charlet  <charlet@adacore.com>

	* exp_aggr.adb (Has_Per_Object_Constraint): Refine previous
	change.

2016-04-21  Thomas Quinot  <quinot@adacore.com>

	* g-socket.adb (Raise_Host_Error): Include additional Name parameter.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* lib-writ.adb (Write_ALI): Do not record in ali file units
	that are present in the files table but not analyzed. These
	units are present because they appear in the context of units
	named in limited_with clauses, and the unit being compiled does
	not depend semantically on them.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Simplify code to
	create the procedure body for an function returning an array type,
	when generating C code. Reuse the subprogram body rather than
	creating a new one, both as an efficiency measure and because
	in an instance the body may contain global references that must
	be preserved.

From-SVN: r235324
2016-04-21 11:39:38 +02:00
Marc Glisse
2c2870a1b1 max(INT_MIN, x) -> x
2016-04-21  Marc Glisse  <marc.glisse@inria.fr>

gcc/
	* match.pd (min(int_max, x), max(int_min, x)): New transformations.

gcc/testsuite/
	* gcc.dg/tree-ssa/minmax-1.c: New testcase.

From-SVN: r235323
2016-04-21 09:32:32 +00:00
Hristian Kirtchev
bbe008b6e9 sem_ch3.adb, [...]: Minor reformatting.
2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch3.adb, exp_attr.adb, exp_ch6.adb, exp_aggr.adb: Minor
	reformatting.

From-SVN: r235322
2016-04-21 11:26:02 +02:00
Javier Miranda
35f4f23840 exp_aggr.adb (Component_Check): Extend the check that verifies that the aggregate has no function calls to...
2016-04-21  Javier Miranda  <miranda@adacore.com>

	* exp_aggr.adb (Component_Check): Extend
	the check that verifies that the aggregate has no function
	calls to handle transformations performed by the frontend.
	(Ultimate_Original_Expression): New subprogram.

From-SVN: r235321
2016-04-21 11:18:57 +02:00
Arnaud Charlet
a1ad79ed63 [multiple changes]
2016-04-21  Philippe Gil  <gil@adacore.com>

	* krunch.adb (Krunch): Fix krunching of i-java.

2016-04-21  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch8.adb (Evaluation_Required): Always return
	True when Modify_Tree_For_C.

From-SVN: r235320
2016-04-21 11:12:45 +02:00
Jan Hubicka
e6007a27bd ipa-inline.c (can_inline_edge_p): Pass caller info to ultiimate_alias_target.
* ipa-inline.c (can_inline_edge_p): Pass caller info to
	ultiimate_alias_target.
	(update_callee_keys): Likewise.
	(lookup_recursive_calls): Likewise.
	(speculation_useful_p): Likewise.

From-SVN: r235319
2016-04-21 09:08:08 +00:00
Jan Hubicka
a2b056a364 re PR c++/70018 (Possible issue around IPO and C++ comdats discovered as pure/const)
PR ipa/70018
	* cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
	(set_nothrow_flag_1): ... this; handle interposition correctly;
	recurse on aliases and thunks.
	(cgraph_node::set_nothrow_flag): New.
	* ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
	functions compiled with non-call exceptions that binds to current
	def.
	(propagate_nothrow): Be safe WRT interposition.
	* cgraph.h (set_nothrow_flag): Update prototype.

	* g++.dg/ipa/nothrow-1.C: New testcase.

From-SVN: r235318
2016-04-21 09:05:07 +00:00
Arnaud Charlet
9b7924dd17 [multiple changes]
2016-04-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gnatlink.adb (Gnatlink): Robustify detection of Windows target.
	* alloc.ads: Minor comment fixes.
	* einfo.ads: Fix typo.

2016-04-21  Arnaud Charlet  <charlet@adacore.com>

	* exp_aggr.adb (Component_Not_OK_For_Backend): Redo previous
	changes to handle all cases of components depending on the
	discriminant, not just string literals.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Analyze_Subtype_Declaration): If the subtype
	declaration is the generated declaration for a generic actual,
	inherit predicates from the actual if it is a predicated subtype.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.adb (Rewrite_Function_Call_For_C): If the function is
	inherited and its result is controlling,  introduce a conversion
	on the actual for the corresponding procedure call, to avoid
	spurious type errors.

2016-04-21  Jerome Lambourg  <lambourg@adacore.com>

	* krunch.adb (Krunch): Fix krunching of i-vxworks.

From-SVN: r235317
2016-04-21 10:57:30 +02:00
Arnaud Charlet
d74716b313 [multiple changes]
2016-04-21  Gary Dismukes  <dismukes@adacore.com>

	* exp_aggr.adb: Minor reformatting and code cleanup.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Resolve_Name): Omit quantified expressions from
	resolution, because they introduce local names. Full resolution
	will take place when predicate function is constructed.

From-SVN: r235316
2016-04-21 10:54:25 +02:00
Jan Hubicka
f0305f3a5b tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also max_loop_iterations_int.
* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
	max_loop_iterations_int.
	(tree_unswitch_outer_loop): Likewise.

From-SVN: r235315
2016-04-21 08:52:41 +00:00
Arnaud Charlet
0ef5cd0ad8 exp_aggr.adb (Component_Not_OK_For_Backend): Refine previous change to take into account Per_Object_Constraint field rather...
2016-04-21  Arnaud Charlet  <charlet@adacore.com>

	* exp_aggr.adb (Component_Not_OK_For_Backend): Refine previous
	change to take into account Per_Object_Constraint field rather
	than special casing strings.
	* exp_ch6.adb: Fix typo in Replace_Returns.

From-SVN: r235314
2016-04-21 10:52:31 +02:00
Arnaud Charlet
2d6aa71558 [multiple changes]
2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch5.adb: Minor reformatting.

2016-04-21  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch2.adb (Expand_Current_Value): Make an appropriate
	character literal if the entity is of a character type.

2016-04-21  Arnaud Charlet  <charlet@adacore.com>

	* exp_aggr.adb (Backend_Processing_Possible): Return False
	when generating C and aggregate contains function calls.

2016-04-21  Tristan Gingold  <gingold@adacore.com>

	* krunch.adb (Krunch): Only partially krunch children of
	Interfaces that aren't known.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Make_Inline): Handle properly the instantiation
	of a generic subpprogram that carries an Inline aspect. Place
	inline info on the anonymous subprogram that is constructed in
	the wrapper package.
	(Analyze_Pragma, case Pure): Do not check placement if pragma
	appears within an instantiation, which can be nested at any level.
	* sem_ch12.adb (Analyze_Instance_And_Renamings): Do not copy Freeze
	node from anonymous subprogram to its visible renaming. The
	freeze node will be constructed if the subprogram carries
	delayed aspects.
	(Set_Global): Preserve dimension information if present (from
	code reading).

2016-04-21  Vasiliy Fofanov  <fofanov@adacore.com>

	* gnatlink.adb: Change wording of the warning message on
	problematic filenames to be more neutral. Add a new substring
	"patch" introduced on Windows 10.

From-SVN: r235313
2016-04-21 10:50:36 +02:00
Arnaud Charlet
08f52d9f84 [multiple changes]
2016-04-21  Philippe Gil  <gil@adacore.com>

	* tracebak.c (__gnat_backtrace): handle bad RIP values (win64 only)

2016-04-21  Javier Miranda  <miranda@adacore.com>

	* exp_aggr.adb (Component_Not_OK_For_Backend): Return true for string
	literals.

2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.adb (Has_Non_Null_Abstract_State): New routine.
	* einfo.ads New synthesized attribute
	Has_Non_Null_Abstract_State along with occurrences in entities.
	(Has_Non_Null_Abstract_State): New routine.
	* sem_ch7.adb (Unit_Requires_Body): Add local variable
	Requires_Body. A package declaring an abstract state requires
	a body only when the state is non-null and the package contains
	at least one other construct that requires completion in a body.
	* sem_util.adb (Mode_Is_Off): Removed.
	(Requires_State_Refinement): Remove an obsolete check. Code
	cleanup.

2016-04-21  Bob Duff  <duff@adacore.com>

	* sem_attr.adb (Analyze_Attribute): In processing
	the 'Old attribute, a warning is given for infinite recursion. Fix
	the code to not crash when the prefix of 'Old denotes a protected
	function.
	* sem_ch5.adb (Analyze_Iterator_Specification):
	Avoid calling Is_Dependent_Component_Of_Mutable_Object in cases
	where the parameter would not be an object.

2016-04-21  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_eval.adb (Compile_Time_Compare): Be prepared for an empty
	Etype or Underlying_Type of the operands.

2016-04-21  Eric Botcazou  <ebotcazou@adacore.com>

	* atree.adb (Print_Statistics): Protect against overflows and
	print the memory consumption in bytes.
	* table.adb (Reallocate): Do the intermediate calculation of the new
	size using the Memory.size_t type.

From-SVN: r235312
2016-04-21 10:48:04 +02:00
Arnaud Charlet
b943a97113 [multiple changes]
2016-04-21  Gary Dismukes  <dismukes@adacore.com>

	* exp_attr.adb (Is_Inline_Floating_Point_Attribute): Suppress
	expansion of Attribute_Machine and Attribute_Model for AAMP.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb: Disable previous change for now.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Find_Selected_Component): If prefix has an
	access type and designated type is a limited view, introduce
	an explicit dereference before continuing the analysis, and
	set its type to the non-limited view of the designated type,
	if we are in context where it is available.

From-SVN: r235311
2016-04-21 10:30:19 +02:00
Arnaud Charlet
b1d8d2290f Minor reformatting.
From-SVN: r235310
2016-04-21 10:27:18 +02:00
Ed Schonberg
78bc7fe67e freeze.adb: Freeze profile in ASIS mode.
2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb: Freeze profile in ASIS mode.

From-SVN: r235309
2016-04-21 10:26:57 +02:00
Arnaud Charlet
6dc87f5f53 [multiple changes]
2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_aux.ads, sem_aux.adb (Has_Rep_Item): New variant.
	* sem_util.adb (Inherit_Rep_Item_Chain): Reimplemented.

2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch6.adb: Minor reformatting.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb: Minor comment update.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* freeze.ads, freeze.adb (Freeze_Entity, Freeze_Before): Add
	boolean parameter to determine whether freezing an overloadable
	entity freezes its profile as well. This is required by
	AI05-019. The call to Freeze_Profile within Freeze_Entity is
	conditioned by the value of this flag, whose default is True.
	* sem_attr.adb (Resolve_Attribute, case 'Access): The attribute
	reference freezes the prefix, but it the prefix is a subprogram
	it does not freeze its profile.

From-SVN: r235308
2016-04-21 10:25:21 +02:00
Arnaud Charlet
a14bbbb4a4 [multiple changes]
2016-04-21  Javier Miranda  <miranda@adacore.com>

	* exp_util.adb (Build_Procedure_Form): No action needed for
	subprogram renamings since the backend can generate the call
	using the renamed subprogram. This leaves the tree more clean
	to the backend.
	* exp_ch6.adb (Expand_Call): Extend previous patch for
	rewritten-for-c entities to handle subprogram renamings.
	(Rewrite_Function_Call_For_C): Handle subprogram renamings.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb: Code cleanup.

From-SVN: r235307
2016-04-21 10:23:05 +02:00
Ed Schonberg
17fd72cef4 sem_ch6.adb (Analyze_Subprogram_Body_Helper): If the body is created for SPARK_To_C...
2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): If the body is
	created for SPARK_To_C, the entity must remain invisible so it
	does not overload subsequent references to the original function.
	* exp_ch6.adb (Build_Procedure_Body_Form, Replace_Returns):
	Handle Extended_Return_Statements by replacing it with a block
	with assignments and a simple return statement.
	* exp_util.adb (Build_Procedure_Form): Make procedure entity
	invisible after analyzing declaration, to prevent improper
	overloading.

From-SVN: r235306
2016-04-21 10:21:47 +02:00
Javier Miranda
aeb98f1dcd sem_ch6.adb (Build_Subprogram_Declaration): Propagate the attribute Rewritten_For_C to the body since since the expander...
2016-04-21  Javier Miranda  <miranda@adacore.com>

	* sem_ch6.adb (Build_Subprogram_Declaration): Propagate the
	attribute Rewritten_For_C to the body since since the expander
	may generate calls using that entity.
	* exp_ch6.adb (Expand_Call): For internally generated
	calls ensure that they reference the entity of the spec
	of the called function.
	(Rewritten_For_C_Func_Id): New subprogram.
	(Rewritten_For_C_Proc_Id): New subprogram.
	(Rewrite_Function_Call_For_C): Invoke the new subprogram to
	ensure that we skip freezing entities.
	* exp_util.adb (Build_Procedure_Form): No action needed if the
	procedure was already built.

From-SVN: r235305
2016-04-21 10:20:59 +02:00
Arnaud Charlet
2cc7967fbe [multiple changes]
2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch3.adb, exp_util.adb, sem_ch13.adb, exp_unst.adb: Minor
	reformatting.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Denotes_Iterator): Use root type to determine
	whether the ultimate ancestor is the predefined iterator
	interface pakage.
	* exp_ch5.adb (Expand_Iterator_Over_Container): simplify code
	and avoid reuse of Pack local variable.

2016-04-21  Olivier Hainque  <hainque@adacore.com>

	* system-vxworks-arm.ads, system-vxworks-sparcv9.ads,
	system-vxworks-ppc.ads, system-vxworks-m68k.ads,
	system-vxworks-mips.ads, system-vxworks-x86.ads: Define
	Executable_Extension to ".out".

From-SVN: r235304
2016-04-21 10:19:35 +02:00
Javier Miranda
29a56f611a frontend.adb: Update call to Unnest_Subprograms.
2016-04-21  Javier Miranda  <miranda@adacore.com>

	* frontend.adb: Update call to Unnest_Subprograms.
	* exp_ch6.ads, exp_ch6.adb, exp_unst.ads, exp_unst.adb
	(Unnest_Subprograms): Moved to package exp_unst.
	* exp_unst.ads (Unnest_Subprogram): Moved to the body of the
	package.
	* exp_dbug.adb (Qualify_Entity_Name): Enable qualification of
	enumeration literals when generating C code.

From-SVN: r235303
2016-04-21 10:14:08 +02:00
Arnaud Charlet
e379beb56f [multiple changes]
2016-04-21  Javier Miranda  <miranda@adacore.com>

	* frontend.adb: Remove call to initialize Exp_Ch6.
	* exp_ch6.ads, exp_ch6.adb (Initialize): removed.
	(Unest_Entry/Unest_Bodies): Removed.
	(Unnest_Subprograms): Code cleanup.

2016-04-21  Arnaud Charlet  <charlet@adacore.com>

	* set_targ.adb (Read_Target_Dependent_Values):
	close target description file once its contents is read.
	* s-os_lib.adb (Non_Blocking_Spawn, version with Stdout_File
	and Stderr_File): Close local file descriptors before spawning
	child process.
	* exp_util.adb (Containing_Package_With_Ext_Axioms): Limit scope of
	local variables to make the code easier to understand and avoid
	duplicated calls to Parent and Generic_Parent.

From-SVN: r235302
2016-04-21 10:11:46 +02:00
GCC Administrator
2e9bd65737 Daily bump.
From-SVN: r235301
2016-04-21 00:16:29 +00:00
Nathan Sidwell
ee392fc292 re PR c++/55635 (Deallocation function ("operator delete") not called when destructor throws exception)
cp/
	PR c++/55635
	* init.c (build_vec_delete_1): Protect operator delete call in try
	finally.
	(build_delete): Likewise.
	* optimize.c (build_delete_destructor_body): Likewise.

	testsuite/
	PR c++/55635
	* g++.dg/eh/delete1.C: New.

From-SVN: r235297
2016-04-20 19:59:56 +00:00
H.J. Lu
dda49daffd Add -mtune-ctrl=sse_typeless_stores to avx256-unaligned-store-2.c
Since avx256-unaligned-store-2.c scans typeless SSE stores, add
-mtune-ctrl=sse_typeless_stores to enable typeless SSE stores.

	* gcc.target/i386/avx256-unaligned-store-2.c: Add
	-mtune-ctrl=sse_typeless_stores.

From-SVN: r235296
2016-04-20 12:45:49 -07:00
H.J. Lu
8a5b9d5a99 Update load scan avx256-unaligned-load-1.c
Since avx_loadups256 and sse_loadups have been replaced by movv8sf_internal
and movv4sf_internal, respectively, we need to scan movv8sf_internal and
movv4sf_internal for load.

	* gcc.target/i386/avx256-unaligned-load-1.c: Update load scan.

From-SVN: r235295
2016-04-20 12:44:52 -07:00
Jonathan Wakely
a1e1ec7605 Fix std::codecvt_utf8* for big-endian targets
PR libstdc++/69703
	* src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
	__codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.

From-SVN: r235293
2016-04-20 18:40:02 +01:00
Bin Cheng
1011119f47 re PR tree-optimization/69489 (missed vectorization for boolean loop, missed if-conversion)
PR tree-optimization/69489
	* tree-if-conv.c (phi_convertible_by_degenerating_args): New.
	(if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
	Revise dump message.
	(if_convertible_bb_p): Remove check on edge count of basic block's
	predecessors.

	gcc/testsuite/ChangeLog
	PR tree-optimization/69489
	* gcc.dg/tree-ssa/ifc-pr69489-2.c: New test.

From-SVN: r235292
2016-04-20 15:57:01 +00:00
Martin Galvan
4986f823a2 ieee754-df.S: Fix typos in comments.
2016-04-20  Martin Galvan  <martin.galvan@tallertechnologies.com>

	libgcc/
	* config/arm/ieee754-df.S: Fix typos in comments.

From-SVN: r235291
2016-04-20 11:49:13 -04:00
Ilya Verbin
477d4906b8 re PR c++/69363 (ICE when doing a pragma simd reduction with max)
Fix PR c++/69363

gcc/c-family/
	PR c++/69363
	* c-cilkplus.c (c_finish_cilk_clauses): Remove function.
	* c-common.h (c_finish_cilk_clauses): Remove declaration.
gcc/c/
	PR c++/69363
	* c-parser.c (c_parser_cilk_all_clauses): Use c_finish_omp_clauses
	instead of c_finish_cilk_clauses.
	* c-tree.h (c_finish_omp_clauses): Add new default argument.
	* c-typeck.c (c_finish_omp_clauses): Add new argument.  Allow
	floating-point variables in the linear clause for Cilk Plus.
gcc/cp/
	PR c++/69363
	* cp-tree.h (finish_omp_clauses): Add new default argument.
	* parser.c (cp_parser_cilk_simd_all_clauses): Use finish_omp_clauses
	instead of c_finish_cilk_clauses.
	* semantics.c (finish_omp_clauses): Add new argument.  Allow
	floating-point variables in the linear clause for Cilk Plus.
gcc/testsuite/
	PR c++/69363
	* c-c++-common/cilk-plus/PS/clauses3.c: Adjust dg-error string.
	* c-c++-common/cilk-plus/PS/clauses4.c: New test.
	* c-c++-common/cilk-plus/PS/pr69363.c: New test.

From-SVN: r235290
2016-04-20 15:48:53 +00:00
Bin Cheng
fad08d127f re PR tree-optimization/56625 (After if-conversion vectorizer doesn't recognize similar loads)
PR tree-optimization/56625
	PR tree-optimization/69489
	* tree-data-ref.h (DR_INNERMOST): New macro.
	* tree-if-conv.c (innermost_loop_behavior_hash): New class for
	hashing struct innermost_loop_behavior.
	(ref_DR_map): Remove.
	(innermost_DR_map): New map.
	(baseref_DR_map): Revise comment.
	(hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
	to innermost_DR_map accroding to its innermost loop behavior.
	(ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
	to its innermost loop behavior.
	(if_convertible_loop_p_1): Remove intialization for ref_DR_map.
	Add initialization for innermost_DR_map.  Record memory reference
	in DR_BASE_ADDRESS if the reference is compound one or it doesn't
	have innermost loop behavior.
	(if_convertible_loop_p): Remove release for ref_DR_map.  Release
	innermost_DR_map.

	gcc/testsuite/ChangeLog
	PR tree-optimization/56625
	PR tree-optimization/69489
	* gcc.dg/vect/pr56625.c: New test.
	* gcc.dg/tree-ssa/ifc-pr69489-1.c: New test.

From-SVN: r235289
2016-04-20 15:41:45 +00:00
Nathan Sidwell
323af7cfa7 semantics.c (finish_compound_lteral): Don't wrap VECTOR_TYPEs in a TARGET_EXPR.
* semantics.c (finish_compound_lteral): Don't wrap VECTOR_TYPEs in a
	TARGET_EXPR.

From-SVN: r235288
2016-04-20 15:30:47 +00:00
H.J. Lu
9023fd9ea0 Don't build 32-bit libatomic with -march=i486 on x86-64
Gcc uses the same -march= for both -m32 and -m64 on x86-64 unless
--with-arch-32= is used.  There is no need for -march=i486 to compile
32-bit libatomic on x86-64.

	PR target/70454
	* configure.tgt (XCFLAGS): Don't add -march=i486 to compile
	32-bit x86 target library on x86-64.

From-SVN: r235287
2016-04-20 07:41:55 -07:00
Uros Bizjak
8f6a773bd8 i386.md (*lea<mode>_general_1): Rename from *lea_general_1.
* config/i386/i386.md (*lea<mode>_general_1): Rename from
	*lea_general_1.  Use explicit SWI12 mode interator.
	(*lea<mode>_general_2): Rename from *lea_general_2.
	Use explicit SWI12 mode interator.
	(*lea<mode>_general_3): Rename from *lea_general_3.
	Use explicit SWI12 mode interator.
	(*lea<SWI12:mode>_general_4): Split from *lea_general_4.
	Use explicit SWI12 mode interator.
	(*lea<SWI48:mode>_general_4): Split from *lea_general_4.
	Use explicit SWI48 mode interator.

From-SVN: r235286
2016-04-20 16:33:05 +02:00
H.J. Lu
7ccc95364c Simplify ix86_expand_vector_move_misalign
Since mov<mode>_internal patterns handle both aligned/unaligned load
and store, we can simplify ix86_avx256_split_vector_move_misalign and
ix86_expand_vector_move_misalign.

	* config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
	Short-cut unaligned load and store cases.  Handle all integer
	vector modes.
	(ix86_expand_vector_move_misalign): Short-cut unaligned load
	and store cases.  Call ix86_avx256_split_vector_move_misalign
	directly without checking mode class.

From-SVN: r235283
2016-04-20 06:39:28 -07:00
Andrew Pinski
9e3e4fab84 [AArch64] Work around PR target/64971
2016-04-20  Andrew Pinski  <apinski@cavium.com>
            Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/64971
	* config/aarch64/aarch64.md (sibcall): Force call
	address to be DImode for ILP32.
	(sibcall_value): Likewise.

	* gcc.c-torture/compile/pr37433-1.c: New testcase.


Co-Authored-By: Kyrylo Tkachov <kyrylo.tkachov@arm.com>

From-SVN: r235281
2016-04-20 13:29:32 +00:00
H.J. Lu
ce6d77a40a Replace -skip-rax-setup with -mskip-rax-setup
* doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.

From-SVN: r235275
2016-04-20 05:55:36 -07:00
Richard Biener
545cd7ecc8 gimple-match.h (maybe_build_generic_op): Adjust prototype.
2016-04-20  Richard Biener  <rguenther@suse.de>

	* gimple-match.h (maybe_build_generic_op): Adjust prototype.
	* gimple-match-head.c (maybe_build_generic_op): Pass all ops
	by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
	(maybe_push_res_to_seq): Adjust.
	* gimple-fold.c (maybe_build_generic_op): Likewise.

From-SVN: r235274
2016-04-20 12:49:58 +00:00
Marek Polacek
dd39022b9e tree-if-conv.c (is_false_predicate): For NULL_TREE return false rather than true.
* tree-if-conv.c (is_false_predicate): For NULL_TREE return false
	rather than true.

From-SVN: r235272
2016-04-20 12:37:38 +00:00
Arnaud Charlet
d7aa24e4bc * gnat.dg/self1.adb: Remove now incorrect test.
From-SVN: r235271
2016-04-20 14:28:48 +02:00
Ilya Enkovich
ab04f5cd79 sse.md (vec_unpacks_lo_hi): Always use kmovw to support AVX512F target.
gcc/

	* config/i386/sse.md (vec_unpacks_lo_hi): Always
	use kmovw to support AVX512F target.

From-SVN: r235270
2016-04-20 11:47:13 +00:00