156736 Commits

Author SHA1 Message Date
Michael Meissner
bd8cd1136c <forgot to do svn add on the amo.h file>
[gcc]
2017-10-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
	memory operation instruction support.
	* config.gcc (powerpc*-*-*): Include amo.h as an extra header.
	(rs6000-ibm-aix[789]*): Likewise.
	* doc/extend.texi (PowerPC Atomic Memory Operation Functions):
	Document new functions.

[gcc/testsuite]
2017-10-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/amo1.c: New test.
	* gcc.target/powerpc/amo2.c: Likewise.

From-SVN: r253556
2017-10-09 18:44:41 +00:00
Bill Schmidt
3395b656c9 rs6000-p8swap.c (rs6000_analyze_swaps): Process deferred rescans after the lvx/stvx recombination pre-pass.
2017-10-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process
	deferred rescans after the lvx/stvx recombination pre-pass.

From-SVN: r253555
2017-10-09 18:38:42 +00:00
Pierre-Marie de Rodat
5d57846b76 exp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): Take care of unchecked...
gcc/ada/

2017-10-09  Bob Duff  <duff@adacore.com>

	* exp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): Take
	care of unchecked conversions in addition to regular conversions. This
	takes care of a case where a type is derived from a private untagged
	type that is completed by a tagged controlled type.

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

	* exp_disp.adb (Build_Class_Wide_Check, Replace_Formals): When
	rewriting a class-wide condition, handle properly the case where the
	controlling argument of the operation to which the condition applies is
	an access to a tagged type, and the condition includes a dispatching
	call with an implicit dereference.

gcc/testsuite/

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

	* gnat.dg/class_wide4.adb, gnat.dg/class_wide4_pkg.ads,
	gnat.dg/class_wide4_pkg2.ads: New testcase.

From-SVN: r253554
2017-10-09 18:23:07 +00:00
Michael Meissner
a1df65216a amo.h: New include file to provide ISA 3.0 atomic memory operation instruction support.
[gcc]
2017-10-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
	memory operation instruction support.
	* config.gcc (powerpc*-*-*): Include amo.h as an extra header.
	(rs6000-ibm-aix[789]*): Likewise.
	* doc/extend.texi (PowerPC Atomic Memory Operation Functions):
	Document new functions.

[gcc/testsuite]
2017-10-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/amo1.c: New test.
	* gcc.target/powerpc/amo2.c: Likewise.

From-SVN: r253552
2017-10-09 18:20:01 +00:00
Pierre-Marie de Rodat
15529d0aa0 exp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): Remove the code at the end of...
gcc/ada/

2017-10-09  Bob Duff  <duff@adacore.com>

	* exp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): Remove
	the code at the end of this procedure that was setting the type of a
	class-wide object to the specific type returned by a function call.
	Treat this case as indefinite instead.

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Try_Class_Wide_Operation, Traverse_Homonyms):
	Suppress spurious ambiguity error when two traversals of the homonym
	chain (first directly, and then through an examination of relevant
	interfaces) retrieve the same operation, when other irrelevant homonyms
	of the operatioh are also present.

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Object_Access_Level): If the object is the return
	statement of an expression function, return the level of the function.
	This is relevant when the object involves an implicit conversion
	between access types and the expression function is a completion, which
	forces the analysis of the expression before rewriting it as a body, so
	that freeze nodes can appear in the proper scope.

2017-10-09  Bob Duff  <duff@adacore.com>

	* atree.adb: Make nnd apply to everything "interesting", including
	Rewrite.  Remove rrd.

2017-10-09  Javier Miranda  <miranda@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): Avoid never-ending loop
	processing the declaration of the dummy object internally created by
	Make_DT to compute the offset to the top of components referencing
	secondary dispatch tables.
	(Initialize_Tag): Do not initialize the offset-to-top field if it has
	been initialized initialized.
	* exp_disp.ads (Building_Static_Secondary_DT): New subprogram.
	* exp_disp.adb (Building_Static_Secondary_DT): New subprogram.
	(Make_DT): Create a dummy constant object if we can statically build
	secondary dispatch tables.
	(Make_Secondary_DT): For statically allocated secondary dispatch tables
	use the dummy object to compute the offset-to-top field value by means
	of the attribute 'Position.

gcc/testsuite/

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

	* gnat.dg/class_wide3.adb, gnat.dg/class_wide3_pkg.ads: New testcase.

From-SVN: r253550
2017-10-09 15:49:59 +00:00
Pierre-Marie de Rodat
5168a9b3d0 exp_ch6.adb (Expand_N_Extended_Return_Statement): Add self-checking code so if BIPAlloc is not passed in...
gcc/ada/

2017-10-09  Bob Duff  <duff@adacore.com>

	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Add self-checking
	code so if BIPAlloc is not passed in, it will likely raise
	Program_Error instead of cause miscellaneous chaos.
	(Is_Build_In_Place_Result_Type): Return False if not Expander_Active,
	as for the other Is_B-I-P... functions.
	* sem_aggr.adb (Resolve_Extension_Aggregate): For an extension
	aggregate whose ancestor part is a build-in-place call returning a
	nonlimited type, transform the assignment to the ancestor part to use a
	temp.
	* sem_ch3.adb (Build_Itype_Reference): Handle the case where we're
	creating an Itype for a library unit entity.
	(Check_Initialization): Avoid spurious error message on
	internally-generated call.
	* sem_ch5.adb (Analyze_Assignment): Handle the case where the
	right-hand side is a build-in-place call. This didn't happen when b-i-p
	was only for limited types.
	* sem_ch6.adb (Create_Extra_Formals): Remove assumption that b-i-p
	implies >= Ada 2005.
	* sem_ch7.adb (Scan_Subprogram_Refs): Avoid traversing the same nodes
	repeatedly.
	* sem_util.adb (Next_Actual): Handle case of build-in-place call.

2017-10-09  Arnaud Charlet  <charlet@adacore.com>

	* doc/gnat_ugn/gnat_and_program_execution.rst: Minor edit.

2017-10-09  Piotr Trojanek  <trojanek@adacore.com>

	* libgnarl/s-taprob.adb: Minor whitespace fix.

2017-10-09  Bob Duff  <duff@adacore.com>

	* namet.ads: Minor comment fix.

2017-10-09  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aux.adb (Unit_Declaration_Node): Detect protected declarations,
	just like other program units listed in Ada RM 10.1(1).

2017-10-09  Justin Squirek  <squirek@adacore.com>

	* sem_ch8.adb (Update_Chain_In_Scope): Modify warning messages.

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Analyze_Associations, Check_Generic_Parent): If an
	actual for a formal package is an instantiation of a child unit, create
	a freeze node for the instance of the parent if it appears in the same
	scope and is not frozen yet.

2017-10-09  Pierre-Marie de Rodat  <derodat@adacore.com>

	* exp_atag.ads, libgnat/a-tags.adb, libgnat/a-tags.ads: Enhance
	in-source documentation for tagged types's Offset_To_Top.

2017-10-09  Bob Duff  <duff@adacore.com>

	* exp_ch3.adb (Build_Assignment): Parameter name N was somewhat
	confusing.  Same for N_Loc.  Remove assumption that b-i-p implies
	limited.  This is for the case of a function call that occurs as the
	default for a record component.
	(Expand_N_Object_Declaration): Deal with the case where expansion has
	created an object declaration initialized with something like
	F(...)'Reference.
	* exp_ch3.adb: Minor reformatting.

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

	* exp_attr.adb (Expand_Attribute_Reference, case 'Valid): The prefix of
	the attribute is an object, but it may appear within a conversion. The
	object itself must be retrieved when generating the range test that
	implements the validity check on a scalar type.

gcc/testsuite/

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

	* gnat.dg/validity_check2.adb, gnat.dg/validity_check2_pkg.ads:
	New testcase.

From-SVN: r253548
2017-10-09 15:17:16 +00:00
Richard Biener
18b4306c0a re PR tree-optimization/82397 (qsort comparator non-negative on sorted output: 1 in vect_analyze_data_ref_accesses)
2017-10-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/82397
	* tree-data-ref.c (data_ref_compare_tree): Make sure to return
	equality only for semantically equal trees.

From-SVN: r253547
2017-10-09 14:13:43 +00:00
Richard Biener
7668b0a656 re PR tree-optimization/82449 (code-gen error in get_rename_from_scev)
2017-10-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/82449
	* sese.c (scev_analyzable_p): Check whether the SCEV is linear.
	* tree-chrec.h (evolution_function_is_constant_p): Adjust to
	allow constant addresses.
	* tree-chrec.c (scev_is_linear_expression): Constant evolutions
	are linear.

	* gfortran.dg/graphite/pr82449.f: New testcase.

From-SVN: r253546
2017-10-09 13:50:10 +00:00
Pekka Jääskeläinen
14108eda7e [BRIGFE] Support BRIG_KIND_NONE directives.
These directives are legal everywhere.  They can be used to
patch away BRIG entries at the binary level.

Also add extra error detection for zeroed regions: make sure
the byteCount field is never zero.

The call code still failed a few PRM test cases. Now all PRM
branch cases pass again.

From-SVN: r253545
2017-10-09 13:06:01 +00:00
Andreas Krebbel
63eea5dcb5 S/390: Fix vec_nabs and vec_vfi builtin flags
gcc/ChangeLog:

2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin
	flags.

From-SVN: r253544
2017-10-09 12:08:46 +00:00
Andreas Krebbel
ad2c91b251 S/390: PR82463: Fix vec_madd header file definition
The builtin was not correctly defined in the vecintrin.h header file.

gcc/testsuite/ChangeLog:

2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/82463
	* gcc.target/s390/zvector/pr82463.c: New test.

gcc/ChangeLog:

2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/82463
	* config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro
	definitions.

From-SVN: r253543
2017-10-09 12:07:54 +00:00
Andreas Krebbel
3141e768ee S/390: PR82465: Fix vec_sqrt builtin flags
The vector double variant is available with z13.  A wrong flag in the
s390-builtins.def file triggered an error when compiling for z13.

gcc/testsuite/ChangeLog:

2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/82465
	* gcc.target/s390/zvector/pr82465.c: New test.

gcc/ChangeLog:

2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/82465
	* config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags.

From-SVN: r253542
2017-10-09 12:06:11 +00:00
Jakub Jelinek
85f59ae75c re PR target/82464 (s390x z14: vector float: invalid parameter combination for intrinsic '__builtin_s390_vec_xor')
PR target/82464
	* config/s390/s390-builtins.def (s390_vec_xor_flt_a,
	s390_vec_xor_flt_b, s390_vec_xor_flt_c): New.

From-SVN: r253541
2017-10-09 13:40:23 +02:00
Wilco Dijkstra
8d9c7f8a86 Fix ssa-dse-26.c
Add missing -fno-short-enums to ensure this test passes on arm-none-eabi
which uses short enums.

    gcc/testsuite/
	* gcc.dg/tree-ssa/ssa-dse-26.c (dg-options): Add -fno-short-enums.

From-SVN: r253540
2017-10-09 11:00:17 +00:00
Richard Sandiford
7b27cb4b51 Allow non-wi <op> wi
This patch uses global rather than member operators for wide-int.h,
so that the first operand can be a non-wide-int type.

The patch also removes the and_not and or_not member functions.
It was already inconsistent to have member functions for these
two operations (one of which was never used) and not other wi::
ones like udiv.  After the operator change, we'd have the additional
inconsistency that "non-wi & wi" would work but "non-wi.and_not (wi)"
wouldn't.

2017-10-09  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	* wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro.
	(WI_BINARY_PREDICATE_RESULT): Likewise.
	(wi::binary_traits::operator_result): New type.
	(wi::binary_traits::predicate_result): Likewise.
	(generic_wide_int::operator~, unary generic_wide_int::operator-)
	(generic_wide_int::operator==, generic_wide_int::operator!=)
	(generic_wide_int::operator&, generic_wide_int::and_not)
	(generic_wide_int::operator|, generic_wide_int::or_not)
	(generic_wide_int::operator^, generic_wide_int::operator+
	(binary generic_wide_int::operator-, generic_wide_int::operator*):
	Delete.
	(operator~, unary operator-, operator==, operator!=, operator&)
	(operator|, operator^, operator+, binary operator-, operator*): New
	functions.
	* expr.c (get_inner_reference): Use wi::bit_and_not.
	* fold-const.c (fold_binary_loc): Likewise.
	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
	* tree-ssa-ccp.c (get_value_from_alignment): Likewise.
	(bit_value_binop): Likewise.
	* tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
	* tree-vrp.c (zero_nonzero_bits_from_vr): Likewise.
	(extract_range_from_binary_expr_1): Likewise.
	(masked_increment): Likewise.
	(simplify_bit_ops_using_ranges): Likewise.

From-SVN: r253539
2017-10-09 10:51:45 +00:00
Martin Jambor
191411e43a [PR 82416] Do not extend operands to at least 32 bits
2017-10-09  Martin Jambor  <mjambor@suse.cz>

	PR hsa/82416
gcc/
	* hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
	* hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
	(hsa_type_for_scalar_tree_type): Use it.  Always force min32int for
	COMPLEX types.
	(hsa_fixup_mov_insn_type): New function.
	(hsa_op_with_type::get_in_type): Use it.
	(hsa_build_append_simple_mov): Likewise.  Allow sub-32bit
	immediates in an assert.
	(hsa_op_with_type::extend_int_to_32bit): New method.
	(gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
	types.  Convert to dest type if necessary.
	(gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
	(reg_for_gimple_ssa): Pass false as min32int to
	hsa_type_for_scalar_tree_type.
	(gen_hsa_addr): Fixup type when creating addresable temporary.
	(gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
	(gen_hsa_unary_operation): Extend operands and convert to dest type if
	necessary.  Call hsa_fixup_mov_insn_type.
	(gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
	extend operands and convert to dest type if necessary.
	(gen_hsa_insns_for_operation_assignment): Extend operands and convert
	to dest type if necessary.
	(set_output_in_type): Call hsa_fixup_mov_insn_type.  Just ude dest
	if conversion nt necessary and size matches.
	(gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
	to dest type if necessary.
	(gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
	(gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
	necessary.
	(gen_hsa_clrsb): Likewise.
	(gen_hsa_ffs): Likewise.
	(gen_hsa_divmod): Extend operands and convert to dest type if
	necessary.
	(gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.

libgomp/
	* testsuite/libgomp.hsa.c/pr82416.c: New test.

From-SVN: r253538
2017-10-09 11:41:44 +02:00
Tom de Vries
b7807e11c4 Fix gcc.dg/cold-1.c
2017-10-09  Tom de Vries  <tom@codesourcery.com>

	* gcc.dg/cold-1.c (foo1): Fix warning line number.  Make warning line
	number relative.
	(abort): Declare.

From-SVN: r253537
2017-10-09 09:20:38 +00:00
GCC Administrator
86a6f91eec Daily bump.
From-SVN: r253536
2017-10-09 00:16:23 +00:00
Segher Boessenkool
0a22eb91b3 rs6000: Cleanup of various jump patterns
This cleans up formatting of many jump patterns.  Mostly it is writing
output statements as brace blocks, and deleting default arguments.  It
also makes indentation a little bit more consistent, and uses b%T0
(instead of bctr/blr alternatives) in two more places.


	* config/rs6000/rs6000.md (conditional branch): Clean up formatting.
	Remove empty default arguments.  Use a brace block as output
	statement.
	(conditional return): Ditto.
	(jump): Ditto.
	(indirect_jump): Ditto.  Use b%T0 instead of bctr/blr.
	(tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1):
	Ditto.
	(group_ending_nop): Ditto.
	(doloop_end): Ditto.
	(ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto.
	(splitters for those): Ditto.

From-SVN: r253532
2017-10-09 00:38:25 +02:00
Segher Boessenkool
0c791c5938 rs6000: Update conditional jump patterns, no more (pc) (label_ref)
Currently we have two patterns for every conditional jump: one jumping
if some condition is met, and the other jumping if it is not met.  We
don't need that second form because all our conditions have an opposite
already, and the generic code can deal with that just fine.

This patch deletes that second form.  We generated it directly in one
case; adjusted here.


	* config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
	a conditional jump (and the compare for it) so that pc_rtx is the
	last operand.
	* config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
	for the deleted and renamed ctr<mode>_internal[234] patterns.
	* config/rs6000/rs6000.md: Delete second conditional branch pattern.
	Delete second conditional return pattern.
	(ctr<mode>_internal2): Delete this second bdnz pattern.
	(ctr<mode>_internal3): Rename to ctr<mode>_internal2.
	(ctr<mode>_internal4): Delete this second bdz pattern.

From-SVN: r253531
2017-10-09 00:36:36 +02:00
Eric Botcazou
561593c104 tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
* tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
	(always_initialized_rtx_for_ssa_name_p): New predicate.
	* tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA.
	(finish_out_of_ssa): Free new field of SA.
	* tree-ssa-coalesce.h (get_undefined_value_partitions): Declare.
	* tree-ssa-coalesce.c: Include tree-ssa.h.
	(get_parm_default_def_partitions): Remove extern keyword.
	(get_undefined_value_partitions): New function.
	* expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do
	not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain
	uninitialized bits.
	* loop-iv.c (iv_get_reaching_def): Disqualify all subregs.

From-SVN: r253530
2017-10-08 21:13:52 +00:00
Eric Botcazou
caeaa0b3c6 * builtins.def (BUILT_IN_SETJMP): Revert latest change.
From-SVN: r253529
2017-10-08 20:44:14 +00:00
Steven G. Kargl
1b314f1474 check.c (gfc_check_x): Remove function.
2017-10-08  Steven G. Kargl  <kargl@gcc.gnu.org>

	* check.c (gfc_check_x): Remove function.
	* intrinsic.c (add_functions): Use gfc_check_fn_r.

From-SVN: r253528
2017-10-08 18:02:31 +00:00
Jeff Law
5759add460 stack-check-5.c: Skip with -fstack-protector.
* gcc.dg/stack-check-5.c: Skip with -fstack-protector.
	* gcc.dg/stack-check-6.c: Likewise.
	* gcc.dg/stack-check-6a.c: Likewise.

From-SVN: r253527
2017-10-08 09:44:39 -06:00
Paul Thomas
1741160c2f re PR fortran/82375 (PDT components in PDT declarations fail to compile)
2017-10-08  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/82375
	* module.c : Bump up MOD_VERSION to 15.
	(mio_component): Edit comment about PDT specification list.
	(mio_expr, mio_symbol): Include the expression and symbol PDT
	specification lists in the same way as in mio_component.

From-SVN: r253526
2017-10-08 15:23:24 +00:00
Thomas Koenig
cebb191903 dump_prase_tree (show_symbol): Output list of variables in NAMELIST.
2017-10-08  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* dump_prase_tree (show_symbol): Output list of variables in
	NAMELIST.
	(show_code_node): Add new line for ELSE and END DO for DO
	CONCURRENT.
	* invoke.texi: Document that the output of
	-fdump-fortran-original, -fdump-fortran-optimized and
	-fdump-parse-tree is unsable and may lead to ICEs.

From-SVN: r253525
2017-10-08 12:54:40 +00:00
Jan Hubicka
08a9e4e734 i386.c (ix86_expand_set_or_movmem): Disable 512bit loops for targets that preffer 128bit.
* i386.c (ix86_expand_set_or_movmem): Disable 512bit loops for targets
	that preffer 128bit.

From-SVN: r253524
2017-10-08 10:42:54 +00:00
Jan Hubicka
eb79a6b1cb * i386.c (has_dispatch): Disable for Ryzen.
From-SVN: r253523
2017-10-08 10:41:44 +00:00
Olivier Hainque
a9f3126aad arm.c (arm_set_return_address): Use MEM_VOLATILE_P on the target mem instead of RTX_FRAME_RELATED_P on the insn...
2017-10-08  Olivier Hainque  <hainque@adacore.com>

        * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P
        on the target mem instead of RTX_FRAME_RELATED_P on the insn to
        prevent DSE.
        (thumb_set_return_address): Likewise.

From-SVN: r253522
2017-10-08 08:20:25 +00:00
Olivier Hainque
221ebb39af arm-common.c (arm_except_unwind_info): Handle DWARF2_UNWIND_INFO.
2017-10-08  Olivier Hainque  <hainque@adacore.com>

        * common/config/arm/arm-common.c (arm_except_unwind_info):
        Handle DWARF2_UNWIND_INFO.

From-SVN: r253521
2017-10-08 08:10:41 +00:00
Michael Collison
59abe90398 aarch64.md (*aarch64_reg_<optab>_minus<mode>3): New pattern.
2017-10-07  Michael Collison <michael.collison@arm.com>

	* config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3):
	New pattern.

2017-10-07  Michael Collison <michael.collison@arm.com>

	* gcc.target/aarch64/var_shift_mask_2.c: New test.

From-SVN: r253520
2017-10-08 03:57:36 +00:00
GCC Administrator
ecd8dec2ca Daily bump.
From-SVN: r253519
2017-10-08 00:16:17 +00:00
Eric Botcazou
06fc54dd64 builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead of GCC builtin if...
* builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
	of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined.
	* except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is
	defined, force the creation of a new block for a dispatch label.

From-SVN: r253515
2017-10-07 22:17:16 +00:00
Paul Thomas
2fcd588417 re PR fortran/82375 (PDT components in PDT declarations fail to compile)
2017-10-07  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/82375
	* class.c (gfc_find_derived_vtab): Return NULL for a passed
	pdt template to prevent bad procedures from being written.
	* decl.c (gfc_get_pdt_instance): Do not use the default
	initializer for pointer and allocatable pdt type components. If
	the component is allocatbale, set the 'alloc_comp' attribute of
	'instance'.
	* module.c : Add a prototype for 'mio_actual_arglist'. Add a
	boolean argument 'pdt'.
	(mio_component): Call it for the parameter list of pdt type
	components with 'pdt' set to true.
	(mio_actual_arg): Add the boolean 'pdt' and, if it is set, call
	mio_integer for the 'spec_type'.
	(mio_actual_arglist): Add the boolean 'pdt' and use it in the
	call to mio_actual_arg.
	(mio_expr, mio_omp_udr_expr): Call mio_actual_arglist with
	'pdt' set false.
	* resolve.c (get_pdt_spec_expr): Add the parameter name to the
	KIND parameter error.
	(get_pdt_constructor): Check that cons->expr is non-null.
	* trans-array.c (structure_alloc_comps): For deallocation of
	allocatable components, ensure that parameterized components
	are deallocated first. Likewise, when parameterized components
	are allocated, nullify allocatable components first. Do not
	recurse into pointer or allocatable pdt components while
	allocating or deallocating parameterized components. Test that
	parameterized arrays or strings are allocated before freeing
	them.
	(gfc_trans_pointer_assignment): Call the new function. Tidy up
	a minor whitespace issue.
	trans-decl.c (gfc_trans_deferred_vars): Set 'tmp' to NULL_TREE
	to prevent the expression from being used a second time.

2017-10-07  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/82375
	* gfortran.dg/pdt_13.f03 : New test.
	* gfortran.dg/pdt_14.f03 : New test.
	* gfortran.dg/pdt_15.f03 : New test.

From-SVN: r253514
2017-10-07 21:14:06 +00:00
Jan Hubicka
12b9f3ac92 invoke.texi (Wsuggest-attribute=cold): Document.
* invoke.texi (Wsuggest-attribute=cold): Document.
	* common.opt (Wsuggest-attribute=cold): New
	* ipa-pure-const.c (warn_function_cold): New function.
	* predict.c (compute_function_frequency): Use it.
	* predict.h (warn_function_cold): Declare.

	* gcc.dg/cold-1.c: New testcase.

From-SVN: r253513
2017-10-07 16:48:34 +00:00
Jan Hubicka
59e2f25ee7 tree-switch-conversion.c (do_jump_if_equal, [...]): Update profile.
* tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
	Update profile.

From-SVN: r253512
2017-10-07 16:33:26 +00:00
Paolo Carlini
b8f49e4a98 re PR c++/80805 (ICE in sufficiently complex code with -g (dump_aggr_type))
2017-10-07  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/80805
	* g++.dg/cpp0x/pr80805.C: New.

From-SVN: r253511
2017-10-07 16:10:21 +00:00
Paolo Carlini
53214bd157 re PR c++/80805 (ICE in sufficiently complex code with -g (dump_aggr_type))
2017-10-07  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/80805
	* g++.dg/cpp0x/pr80805.C: New.

From-SVN: r253510
2017-10-07 16:10:02 +00:00
Thomas Koenig
5abde510b7 re PR fortran/49232 (Pointer assignment of stride to CONTIGUOUS pointer not diagnosed as invalid)
2017-10-07  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/49232
	* expr.c (gfc_check_pointer_assign): Error
	for non-contiguous rhs.

2017-10-07  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/49232
	* gfortran.dg/contiguous_4.f90: New test.

From-SVN: r253509
2017-10-07 11:48:28 +00:00
Thomas Koenig
a4792d4431 gfortran.h (async_io_dt): Add external reference.
2017-10-07  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* gfortran.h (async_io_dt): Add external reference.
	* io.c (async_io_dt): Add variable.
	(compare_to_allowed_values): Add prototyte. Add optional argument
	num. If present, set it to the number of the entry that was
	matched.
	(check_io_constraints): If this is for an asynchronous I/O
	statement, set async_io_dt and set the asynchronous flag for
	a SIZE tag.
	* resolve.c (resolve_transfer): If async_io_dt is set, set
	the asynchronous flag on the variable.
	(resolve_fl_namelist): If async_io_dt is set, set the asynchronous
	flag on all elements of the namelist.

From-SVN: r253508
2017-10-07 11:43:58 +00:00
Tom de Vries
e923330e1b Fix libgomp.oacc-fortran/{firstprivate-1,parallel-reduction}.f90 for non-nvidia devices
2017-10-07  Tom de Vries  <tom@codesourcery.com>

	* testsuite/libgomp.oacc-fortran/firstprivate-1.f90 (firstprivate):
	Remove acc_device_nvidia references.
	* testsuite/libgomp.oacc-fortran/parallel-reduction.f90 (reduction):
	Same.

From-SVN: r253507
2017-10-07 08:46:00 +00:00
GCC Administrator
068333113e Daily bump.
From-SVN: r253506
2017-10-07 00:16:21 +00:00
Paolo Carlini
58ebb59bef re PR c++/66690 (error: use of ‘X’ before deduction of ‘auto’)
2017-10-06  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/66690
	* g++.dg/cpp1y/pr66690.C: New.

From-SVN: r253502
2017-10-06 19:04:25 +00:00
Paolo Carlini
df780484fe 2017-10-06 Paolo Carlini <paolo.carlini@oracle.com>
* Fix last ChangeLog entry.

From-SVN: r253498
2017-10-06 16:28:27 +00:00
Paolo Carlini
90e3c064aa re PR c++/47791 (finish function is using literal value instead of a #defined one)
2017-10-06  Paolo Carlini  <paolo.carlini@oracle>

	PR c++/47791
	* decl.c (finish_function): Take a bool intead of an int; adjust.
	* cp-tree.h (finish_function): Adjust declaration.
	* decl2.c (generate_tls_wrapper, finish_objects,
	finish_static_storage_duration_function): Adjust calls.
	* lambda.c (maybe_add_lambda_conv_op, finish_lambda_function):
	Likewise.
	* method.c (synthesize_method): Likewise.
	* optimize.c (maybe_thunk_body, maybe_clone_body): Likewise.
	* pt.c (instantiate_decl): Likewise.
	* parser.c (cp_parser_function_definition_after_declarator,
	cp_parser_late_parsing_for_member, cp_parser_omp_declare_reduction):
	Likewise.
	(cp_parser_ctor_initializer_opt,
	cp_parser_ctor_initializer_opt_and_function_body,
	cp_parser_function_try_block,
	cp_parser_function_definition_after_declarator,
	cp_parser_function_transaction): Return void; adjust declarations.

From-SVN: r253497
2017-10-06 16:26:00 +00:00
Nathan Sidwell
9db84eceda [PR c++/82424] Dont convert dependent types
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00385.html
	cp/
	PR c++/82424
	* name-lookup.c (check_local_shadow): Don't try and convert
	dependent types.

	testsuite/
	PR c++/82424
	* g++.dg/warn/pr82424.C: New.

From-SVN: r253496
2017-10-06 16:02:13 +00:00
Jakub Jelinek
7260f6f79c re PR c++/82299 (-Wuseless-cast errors on typed enums used in member data initializers in c++1z)
PR c++/82299
	* decl.c (reshape_init): Suppress warn_useless_cast for direct enum
	init.
	* typeck.c (convert_for_assignment): Likewise.

	* g++.dg/cpp0x/pr82299.C: New test.

From-SVN: r253495
2017-10-06 17:50:50 +02:00
Jakub Jelinek
681f18d19b P0704R1 - fixing const-qualified pointers to members
P0704R1 - fixing const-qualified pointers to members
	* typeck2.c (build_m_component_ref): For -std=c++2a allow
	pointer to const & qualified method on rvalue.

	* g++.dg/cpp2a/ptrmem1.C: New test.

From-SVN: r253494
2017-10-06 17:43:17 +02:00
Nathan Sidwell
9bc3f42066 [C++ PATCH] hash-table for extern-c fns.
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00376.html
	Use hash_table for extern "C" names
	* name-lookup.c (extern_c_fns): Use hash_table.
	(check_extern_c_conflict): Adjust.
	(c_linkage_bindings): Adjust.

From-SVN: r253493
2017-10-06 14:19:23 +00:00
Martin Liska
513d556422 Add sanopt support for UBSAN_PTR.
2017-10-06  Martin Liska  <mliska@suse.cz>

	* sanopt.c (struct sanopt_tree_triplet_hash): Remove inline
	keyword for member functions.
	(struct sanopt_tree_couple): New struct.
	(struct sanopt_tree_couple_hash): New function.
	(struct sanopt_ctx): Add new hash_map.
	(has_dominating_ubsan_ptr_check): New function.
	(record_ubsan_ptr_check_stmt): Likewise.
	(maybe_optimize_ubsan_ptr_ifn): Likewise.
	(sanopt_optimize_walker): Handle IFN_UBSAN_PTR.
	(pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW.
2017-10-06  Martin Liska  <mliska@suse.cz>

	* c-c++-common/ubsan/ptr-overflow-sanitization-1.c: New test.

From-SVN: r253492
2017-10-06 14:14:14 +00:00