Commit Graph

157313 Commits

Author SHA1 Message Date
Ian Lance Taylor
b78e2e5238 compiler: disable escape analysis for runtime
Currently the runtime is hard-coded to non-escape in various places.
    Don't run escape analysis for runtime.
    
    Reviewed-on: https://go-review.googlesource.com/76210

From-SVN: r254476
2017-11-06 21:00:32 +00:00
Ian Lance Taylor
ce995d1cc2 libgo: pass flags to recursive make
"make check" runs make recursively to check each package. Pass
    the flags through. So it is possible to run "make check" with
    different settings easily.
    
    Reviewed-on: https://go-review.googlesource.com/76029

From-SVN: r254475
2017-11-06 20:59:32 +00:00
Richard Sandiford
8094001759 [AArch64] Pass number of units to aarch64_expand_vec_perm(_const)
This patch passes the number of units to aarch64_expand_vec_perm
and aarch64_expand_vec_perm_const, which avoids a to_constant ()
once GET_MODE_NUNITS is variable.

2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

gcc/
	* config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm)
	(aarch64_expand_vec_perm_const): Take the number of units too.
	* config/aarch64/aarch64.c (aarch64_expand_vec_perm)
	(aarch64_expand_vec_perm_const): Likewise.
	* config/aarch64/aarch64-simd.md (vec_perm_const<mode>)
	(vec_perm<mode>): Update accordingly.

Reviewed-by: James Greenhalgh <james.greenhalgh@arm.com>

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r254469
2017-11-06 20:02:49 +00:00
Richard Sandiford
f5cbabc1cc [AArch64] Pass number of units to aarch64_simd_vect_par_cnst_half
This patch passes the number of units to aarch64_simd_vect_par_cnst_half,
which avoids a to_constant () once GET_MODE_NUNITS is variable.

2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

gcc/
	* config/aarch64/aarch64-protos.h (aarch64_simd_vect_par_cnst_half):
	Take the number of units too.
	* config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Likewise.
	(aarch64_simd_check_vect_par_cnst_half): Update call accordingly,
	but check for a vector mode before rather than after the call.
	* config/aarch64/aarch64-simd.md (aarch64_split_simd_mov<mode>)
	(move_hi_quad_<mode>, vec_unpack<su>_hi_<mode>)
	(vec_unpack<su>_lo_<mode, vec_widen_<su>mult_lo_<mode>)
	(vec_widen_<su>mult_hi_<mode>, vec_unpacks_lo_<mode>)
	(vec_unpacks_hi_<mode>, aarch64_saddl2<mode>, aarch64_uaddl2<mode>)
	(aarch64_ssubl2<mode>, aarch64_usubl2<mode>, widen_ssum<mode>3)
	(widen_usum<mode>3, aarch64_saddw2<mode>, aarch64_uaddw2<mode>)
	(aarch64_ssubw2<mode>, aarch64_usubw2<mode>, aarch64_sqdmlal2<mode>)
	(aarch64_sqdmlsl2<mode>, aarch64_sqdmlal2_lane<mode>)
	(aarch64_sqdmlal2_laneq<mode>, aarch64_sqdmlsl2_lane<mode>)
	(aarch64_sqdmlsl2_laneq<mode>, aarch64_sqdmlal2_n<mode>)
	(aarch64_sqdmlsl2_n<mode>, aarch64_sqdmull2<mode>)
	(aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>)
	(aarch64_sqdmull2_n<mode>): Update accordingly.

Reviewed-by: James Greenhalgh <james.greenhalgh@arm.com>

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r254468
2017-11-06 20:02:35 +00:00
Richard Sandiford
73e3da5163 [AArch64] Pass number of units to aarch64_reverse_mask
This patch passes the number of units to aarch64_reverse_mask,
which avoids a to_constant () once GET_MODE_NUNITS is variable.

2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

gcc/
	* config/aarch64/aarch64-protos.h (aarch64_reverse_mask): Take
	the number of units too.
	* config/aarch64/aarch64.c (aarch64_reverse_mask): Likewise.
	* config/aarch64/aarch64-simd.md (vec_load_lanesoi<mode>)
	(vec_store_lanesoi<mode>, vec_load_lanesci<mode>)
	(vec_store_lanesci<mode>, vec_load_lanesxi<mode>)
	(vec_store_lanesxi<mode>): Update accordingly.

Reviewed-by: James Greenhalgh <james.greenhalgh@arm.com>

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r254467
2017-11-06 20:02:27 +00:00
Richard Sandiford
7ac29c0fa0 [AArch64] Add an endian_lane_rtx helper routine
Later patches turn the number of vector units into a poly_int.
We deliberately don't support applying GEN_INT to those (except
in target code that doesn't distinguish between poly_ints and normal
constants); gen_int_mode needs to be used instead.

This patch therefore replaces instances of:

  GEN_INT (ENDIAN_LANE_N (builtin_mode, INTVAL (op[opc])))

with uses of a new endian_lane_rtx function.

2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

gcc/
	* config/aarch64/aarch64-protos.h (aarch64_endian_lane_rtx): Declare.
	* config/aarch64/aarch64.c (aarch64_endian_lane_rtx): New function.
	* config/aarch64/aarch64.h (ENDIAN_LANE_N): Take the number
	of units rather than the mode.
	* config/aarch64/iterators.md (nunits): New mode attribute.
	* config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
	Use aarch64_endian_lane_rtx instead of GEN_INT (ENDIAN_LANE_N ...).
	* config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>)
	(aarch64_dup_lane_<vswap_width_name><mode>, *aarch64_mul3_elt<mode>)
	(*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
	(*aarch64_mul3_elt_to_64v2df, *aarch64_mla_elt<mode>): Likewise.
	(*aarch64_mla_elt_<vswap_width_name><mode>, *aarch64_mls_elt<mode>)
	(*aarch64_mls_elt_<vswap_width_name><mode>, *aarch64_fma4_elt<mode>)
	(*aarch64_fma4_elt_<vswap_width_name><mode>):: Likewise.
	(*aarch64_fma4_elt_to_64v2df, *aarch64_fnma4_elt<mode>): Likewise.
	(*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
	(*aarch64_fnma4_elt_to_64v2df, reduc_plus_scal_<mode>): Likewise.
	(reduc_plus_scal_v4sf, reduc_<maxmin_uns>_scal_<mode>): Likewise.
	(reduc_<maxmin_uns>_scal_<mode>): Likewise.
	(*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
	(*aarch64_get_lane_zero_extendsi<mode>): Likewise.
	(aarch64_get_lane<mode>, *aarch64_mulx_elt_<vswap_width_name><mode>)
	(*aarch64_mulx_elt<mode>, *aarch64_vgetfmulx<mode>): Likewise.
	(aarch64_sq<r>dmulh_lane<mode>, aarch64_sq<r>dmulh_laneq<mode>)
	(aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Likewise.
	(aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Likewise.
	(aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Likewise.
	(aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
	(aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
	(aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Likewise.
	(aarch64_sqdmull2_lane<mode>_internal): Likewise.
	(aarch64_sqdmull2_laneq<mode>_internal): Likewise.
	(aarch64_vec_load_lanesoi_lane<mode>): Likewise.
	(aarch64_vec_store_lanesoi_lane<mode>): Likewise.
	(aarch64_vec_load_lanesci_lane<mode>): Likewise.
	(aarch64_vec_store_lanesci_lane<mode>): Likewise.
	(aarch64_vec_load_lanesxi_lane<mode>): Likewise.
	(aarch64_vec_store_lanesxi_lane<mode>): Likewise.
	(aarch64_simd_vec_set<mode>): Update use of ENDIAN_LANE_N.
	(aarch64_simd_vec_setv2di): Likewise.

Reviewed-by: James Greenhalgh <james.greenhalgh@arm.com>

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r254466
2017-11-06 20:02:10 +00:00
Richard Sandiford
6e601f26f2 Fix ChangeLog entry
From-SVN: r254465
2017-11-06 19:40:43 +00:00
Carl Love
fc504349a6 rs6000-c.c (P8V_BUILTIN_VEC_REVB): Add power 8 definitions.
gcc/ChangeLog:

2017-11-06  Carl Love  <cel@us.ibm.com>

	* config/rs6000/rs6000-c.c (P8V_BUILTIN_VEC_REVB): Add power 8
	definitions.
	(P9V_BUILTIN_VEC_REVB): Remove the power 9 instance definitions.
	* config/rs6000/altivec.h (vec_revb): Change the #define from power 9
	to power 8.
	* config/rs6000/r6000-protos.h (swap_endian_selector_for_mode): Add new
	extern declaration.
	* config/rs6000/rs6000.c (swap_endian_selector_for_mode): Add function.
	* config/rs6000/rs6000-builtin.def (BU_P8V_VSX_1, BU_P8V_OVERLOAD_1):
	Add power 8 macro expansions.
	(BU_P9V_OVERLOAD_1): Remove power 9 overload expansion.
	* config/rs6000/vsx.md (revb_<mode>): Add define_expand to generate
	power 8 instructions.  (VSX_XXBR): Add iterator.

gcc/testsuite/ChangeLog:

2017-11-06  Carl Love  <cel@us.ibm.com>

	* gcc.target/powerpc/builtins-revb-runnable.c: New runnable test file.

From-SVN: r254464
2017-11-06 19:35:55 +00:00
Wilco Dijkstra
113c53c3b8 [Arm] Cleanup IT attributes
A recent change to remove the movdi_vfp_cortexa8 meant that ldrd was used in
ITs block even when arm_restrict_it was enabled.  Rather than just fixing this
latent issue, change the default of predicable_short_it to "no" so that only
16-bit instructions need to be marked with it.  As a result there are far fewer
patterns that need the attribute, and omitting predicable_short_it is no longer
causing issues.

	* config/arm/arm.md (predicable_short_it): Change default to "no",
	improve documentation, remove uses that are identical to the default.
	(enabled_for_depr_it): Rename to enabled_for_short_it.
	* gcc/config/arm/arm-fixed.md (predicable_short_it): Remove default uses.
	* gcc/config/arm/ldmstm.md (predicable_short_it): Likewise.
	* gcc/config/arm/sync.md (predicable_short_it): Likewise.
	* gcc/config/arm/thumb2.md (predicable_short_it): Likewise.
	* gcc/config/arm/vfp.md (predicable_short_it): Likewise.

From-SVN: r254463
2017-11-06 19:26:27 +00:00
Michael Meissner
aeed6d61ef re PR target/82748 (ICE with __builtin_fabsq and __float128 in copy_to_mode_reg, at explow.c:612)
[gcc]
2017-11-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/82748
	* config/rs6000/rs6000-builtin.def (BU_FLOAT128_1): Delete
	float128 helper macros, which are no longer used after deleting
	the old 'q' built-in functions, and moving the round to odd
	built-in functions to being special built-in functions.
	(BU_FLOAT128_2): Likewise.
	(BU_FLOAT128_1_HW): Likewise.
	(BU_FLOAT128_2_HW): Likewise.
	(BU_FLOAT128_3_HW): Likewise.
	(FABSQ): Delete old 'q' built-in functions.
	(COPYSIGNQ): Likewise.
	(SQRTF128_ODD): Move round to odd built-in functions to be
	special built-in functions, so that we can handle
	-mabi=ieeelongdouble.
	(TRUNCF128_ODD): Likewise.
	(ADDF128_ODD): Likewise.
	(SUBF128_ODD): Likewise.
	(MULF128_ODD): Likewise.
	(DIVF128_ODD): Likewise.
	(FMAF128_ODD): Likewise.
	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Map old 'q'
	built-in names to 'f128'.
	* config/rs6000/rs6000.c (rs6000_fold_builtin): Remove folding the
	old 'q' built-in functions, as the machine independent code for
	'f128' built-in functions handles this.
	(rs6000_expand_builtin): Add expansion for float128 round to odd
	functions, keying off on -mabi=ieeelongdouble of whether to use
	the KFmode or TFmode variant.
	(rs6000_init_builtins): Initialize the _Float128 round to odd
	built-in functions.
	* doc/extend.texi (PowerPC Built-in Functions): Document the old
	_Float128 'q' built-in functions are now mapped into the new
	'f128' built-in functions.

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

	PR target/82748
	* gcc.target/powerpc/pr82748-1.c: New test.
	* gcc.target/powerpc/pr82748-2.c: Likewise.

From-SVN: r254462
2017-11-06 18:31:48 +00:00
Paolo Carlini
65371a7edd re PR c++/65579 ([C++11] gcc requires definition of a static constexpr member even though it is not odr-used)
/cp
2017-11-06  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/65579
	* decl2.c (finish_static_data_member_decl): If there's an initializer,
	complete the type and re-apply the quals.

/testsuite
2017-11-06  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/65579
	* g++.dg/cpp0x/constexpr-template11.C: New.

From-SVN: r254461
2017-11-06 17:45:55 +00:00
David Edelsohn
d3722bf732 collect2.c (add_lto_object): Compile for OBJECT_COFF.
* collect2.c (add_lto_object): Compile for OBJECT_COFF.
(scan_prog_file): Don't skip PASS_LTOINFO. Scan for LTO objects.

From-SVN: r254460
2017-11-06 12:24:57 -05:00
Eric Botcazou
86907740aa * gcc-interface/misc.c (gnat_post_options): Clear warn_return_type.
From-SVN: r254459
2017-11-06 17:23:08 +00:00
David Malcolm
de4381a4e9 ipa-fnsummary.c: fix use-after-free crash (PR jit/82826)
gcc/ChangeLog:
	PR jit/82826
	* ipa-fnsummary.c (ipa_fnsummary_c_finalize): New function.
	* ipa-fnsummary.h (ipa_fnsummary_c_finalize): New decl.
	* toplev.c: Include "ipa-fnsummary.h".
	(toplev::finalize): Call ipa_fnsummary_c_finalize.

From-SVN: r254458
2017-11-06 16:31:04 +00:00
Jakub Jelinek
3e2927a1b0 re PR tree-optimization/82838 (ICE in verify_ssa failed w/ store-merging)
PR tree-optimization/82838
	* gimple-ssa-store-merging.c
	(imm_store_chain_info::output_merged_store): Call force_gimple_operand_1
	on a separate gimple_seq which is then appended to seq.

	* gcc.c-torture/compile/pr82838.c: New test.

From-SVN: r254457
2017-11-06 17:29:11 +01:00
Jeff Law
7a1bdd662b re PR target/82788 (wrong code with -fstack-clash-protection --param=stack-clash-protection-probe-interval=10 on simple code)
PR target/82788
	* config/i386/i386.c (PROBE_INTERVAL): Remove.
	(get_probe_interval): New functions.
	(ix86_adjust_stack_and_probe_stack_clash): Use get_probe_interval.
	(ix86_adjust_stack_and_probe): Likewise.
	(output_adjust_stack_and_probe): Likewise.
	(ix86_emit_probe_stack_range): Likewise.
	(ix86_expand_prologue): Likewise.

	PR target/82788
	* gcc.dg/pr82788.c: New test.

From-SVN: r254456
2017-11-06 08:51:16 -07:00
Jeff Law
5422b1f0bd Check in right version of stack-check-12.c
From-SVN: r254455
2017-11-06 08:49:59 -07:00
Richard Sandiford
9134df2c6c PR82816: Widening multiplies of bitfields
In this PR we tried to create a widening multiply of two 3-bit numbers,
but that isn't a widening multiply at the optab/rtl level, since both
the input and output still have the same mode.

We could trap this either in is_widening_mult_p or (as the patch does)
in the routines that actually ask for an optab.  The latter seemed
more natural since is_widening_mult_p doesn't otherwise care about modes.

2017-11-03  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

gcc/
	PR tree-optimization/82816
	* tree-ssa-math-opts.c (convert_mult_to_widen): Return false
	if the modes of the two types are the same.
	(convert_plusminus_to_widen): Likewise.

gcc/testsuite/
	* gcc.c-torture/compile/pr82816.c: New test.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r254454
2017-11-06 14:47:43 +00:00
Bill Schmidt
962b966886 [gcc]
2017-11-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (*p9_vadu<mode>3) Rename to
	p9_vadu<mode>3.
	(usadv16qi): New define_expand.
	(usadv8hi): New define_expand.

[gcc/testsuite]

2017-11-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/sad-vectorize-1.c: New file.
	* gcc.target/powerpc/sad-vectorize-2.c: New file.
	* gcc.target/powerpc/sad-vectorize-3.c: New file.
	* gcc.target/powerpc/sad-vectorize-4.c: New file.

From-SVN: r254453
2017-11-06 13:47:46 +00:00
Jan Hubicka
8e7d1486f6 re PR bootstrap/82832 (Broken PGO LTO bootstrap on x86_64 after r254379)
PR bootstrap/82832
	* ipa-inline-transform.c (update_noncloned_frequencies): Always
	scale.
	(inline_transform): Likewise.
	* predict.c (counts_to_freqs): Remove useless conditional.
	* profile-count.h (profile_count::apply_scale): Move sanity check.
	* tree-inline.c (copy_bb): Always scale.
	(copy_cfg_body): Likewise.

From-SVN: r254452
2017-11-06 13:45:41 +00:00
Martin Liska
454f8b2b0c Fix -Wreturn-type fallout.
2017-11-06  Martin Liska  <mliska@suse.cz>

	* c-c++-common/cilk-plus/AN/pr57541-2.c (foo1): Return a value
	for functions with non-void return type, or change type to void,
	or add -Wno-return-type for test.
	(foo2): Likewise.
	* c-c++-common/cilk-plus/AN/pr57541.c (foo): Likewise.
	(foo1): Likewise.
	* c-c++-common/cilk-plus/CK/errors.c: Likewise.
	* c-c++-common/cilk-plus/CK/pr60197.c: Likewise.
	* c-c++-common/cilk-plus/CK/spawn_in_return.c: Likewise.
	* c-c++-common/fold-masked-cmp-1.c (test_pic): Likewise.
	(test_exe): Likewise.
	* c-c++-common/fold-masked-cmp-2.c (test_exe): Likewise.
	* g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.cc (my_func): Likewise.
	* g++.dg/cilk-plus/CK/pr68997.cc (fa2): Likewise.
	* g++.dg/eh/sighandle.C (dosegv): Likewise.
	* g++.dg/ext/vector14.C (foo): Likewise.
	(main): Likewise.
	* g++.dg/graphite/pr41305.C: Likewise.
	* g++.dg/graphite/pr42930.C: Likewise.
	* g++.dg/opt/pr46640.C (struct QBasicAtomicInt): Likewise.
	(makeDir): Likewise.
	* g++.dg/other/i386-8.C (foo): Likewise.
	* g++.dg/pr45788.C: Likewise.
	* g++.dg/pr64688.C (at_c): Likewise.
	* g++.dg/pr65032.C (G::DecodeVorbis): Likewise.
	* g++.dg/pr71633.C (c3::fn2): Likewise.
	* g++.dg/stackprotectexplicit2.C (A): Likewise.
	* g++.old-deja/g++.law/weak.C (main): Likewise.
2017-11-06  Martin Liska  <mliska@suse.cz>

	* testsuite/libgomp.c++/loop-2.C: Return a value
	for functions with non-void return type, or change type to void,
	or add -Wno-return-type for test.
	* testsuite/libgomp.c++/loop-4.C: Likewise.
	* testsuite/libgomp.c++/parallel-1.C: Likewise.
	* testsuite/libgomp.c++/shared-1.C: Likewise.
	* testsuite/libgomp.c++/single-1.C: Likewise.
	* testsuite/libgomp.c++/single-2.C: Likewise.
2017-11-06  Martin Liska  <mliska@suse.cz>

	* testsuite/27_io/basic_fstream/cons/char/path.cc (main):
	  Return a value for functions with non-void return type,
	  or change type to void, or add -Wno-return-type for test.
	* testsuite/27_io/basic_ifstream/cons/char/path.cc (main):
	Likewise.
	* testsuite/27_io/basic_ofstream/open/char/path.cc (main):
	Likewise.

From-SVN: r254451
2017-11-06 13:41:35 +00:00
Paolo Carlini
98910bc2b9 deduction.cc: Avoid -Wreturn-type warnings.
2017-11-06  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/20_util/optional/cons/deduction.cc: Avoid -Wreturn-type
	warnings.
	* testsuite/20_util/pair/cons/deduction.cc: Likewise.
	* testsuite/20_util/pair/traits.cc: Likewise.
	* testsuite/20_util/tuple/cons/deduction.cc: Likewise.
	* testsuite/20_util/variant/compile.cc: Likewise.
	* testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
	* testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
	Likewise.

From-SVN: r254450
2017-11-06 12:55:35 +00:00
Eric Botcazou
6b6b9e5b90 gcov: New directory.
* gnat.dg/gcov: New directory.
	* gnat.dg/gcov/gcov.exp: New driver.
	* gnat.dg/gcov/check.adb: New test.

From-SVN: r254447
2017-11-06 11:41:49 +00:00
Christophe Lyon
d276dc3174 [ARM] PR 67591 ARM v8 Thumb IT blocks are deprecated part 2
2017-11-06  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/67591
	* config/arm/arm.md (*sub_shiftsi): Add predicable_short_it
	attribute.
	(*cmp_ite0): Add enabled_for_depr_it attribute.
	(*cmp_ite1): Likewise.

From-SVN: r254446
2017-11-06 11:43:19 +01:00
Christophe Lyon
caa3209ec2 [testsuite] Fix directives order
2017-11-06  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.c-torture/execute/pr23135.c: Move dg-add-options after
	dg-options.
	* gcc.dg/torture/pr78305.c: Move dg-do as first directive.
	* gcc.misc-tests/gcov-3.c: Likewise.
	* gcc.target/arm/cmse/baseline/cmse-11.c: Move dg-options before dg-add-options.
	* gcc.target/arm/cmse/baseline/cmse-13.c: Likewise.
	* gcc.target/arm/cmse/baseline/cmse-2.c: Likewise.
	* gcc.target/arm/cmse/baseline/cmse-6.c: Likewise.
	* gcc.target/arm/cmse/baseline/softfp.c: Likewise.
	* gcc.target/arm/cmse/mainline/hard-sp/cmse-13.c: Likewise.
	* gcc.target/arm/cmse/mainline/hard-sp/cmse-5.c: Likewise.
	* gcc.target/arm/cmse/mainline/hard-sp/cmse-7.c: Likewise.
	* gcc.target/arm/cmse/mainline/hard-sp/cmse-8.c: Likewise.
	* gcc.target/arm/cmse/mainline/hard/cmse-13.c: Likewise.
	* gcc.target/arm/cmse/mainline/hard/cmse-5.c: Likewise.
	* gcc.target/arm/cmse/mainline/hard/cmse-7.c: Likewise.
	* gcc.target/arm/cmse/mainline/hard/cmse-8.c: Likewise.
	* gcc.target/arm/cmse/mainline/soft/cmse-13.c: Likewise.
	* gcc.target/arm/cmse/mainline/soft/cmse-5.c: Likewise.
	* gcc.target/arm/cmse/mainline/soft/cmse-7.c: Likewise.
	* gcc.target/arm/cmse/mainline/soft/cmse-8.c: Likewise.
	* gcc.target/arm/cmse/mainline/softfp-sp/cmse-5.c: Likewise.
	* gcc.target/arm/cmse/mainline/softfp-sp/cmse-7.c: Likewise.
	* gcc.target/arm/cmse/mainline/softfp-sp/cmse-8.c: Likewise.
	* gcc.target/arm/cmse/mainline/softfp/cmse-13.c: Likewise.
	* gcc.target/arm/cmse/mainline/softfp/cmse-5.c: Likewise.
	* gcc.target/arm/cmse/mainline/softfp/cmse-7.c: Likewise.
	* gcc.target/arm/cmse/mainline/softfp/cmse-8.c: Likewise.
	* gcc.target/arm/lp1189445.c: Likewise.

From-SVN: r254445
2017-11-06 11:40:43 +01:00
Mukesh Kapoor
7d19c460ed re PR c++/80955 (Macros expanded in definition of user-defined literals)
/libcpp
2017-11-06  Mukesh Kapoor  <mukesh.kapoor@oracle.com>

	PR c++/80955
	* lex.c (lex_string): When checking for a valid macro for the
	warning related to -Wliteral-suffix (CPP_W_LITERAL_SUFFIX),
	check that the macro name does not start with an underscore
	before calling is_macro().

/gcc/testsuite
2017-11-06  Mukesh Kapoor  <mukesh.kapoor@oracle.com>

	PR c++/80955
	* g++.dg/cpp0x/udlit-macros.C: New.

From-SVN: r254443
2017-11-06 10:33:41 +00:00
Paul Thomas
16f681db11 [multiple changes]
2017-11-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/69739
	* trans-expr.c (gfc_map_intrinsic_function): Return false for
	bounds without the DIM argument instead of ICEing.

2017-11-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/69739
	* gfortran.dg/pr69739.f90: New test.

From-SVN: r254441
2017-11-06 09:54:09 +00:00
Martin Liska
19520957ad Fix test-suite fallout of default -Wreturn-type.
2017-11-06  Martin Liska  <mliska@suse.cz>

	* c-c++-common/Wimplicit-fallthrough-8.c: Return a value for
	functions with non-void return type, or change type to void, or
	add -Wno-return-type for test.
	* c-c++-common/asan/pr63638.c (f): Likewise.
	* c-c++-common/goacc/parallel-1.c (firstprivate): Likewise.
	* c-c++-common/gomp/sink-1.c (depend): Likewise.
	* c-c++-common/missing-symbol.c: Likewise.
	* c-c++-common/pr36513-2.c (main2): Likewise.
	* c-c++-common/pr36513.c (main1): Likewise.
	* c-c++-common/pr49706-2.c: Likewise.
	* c-c++-common/pr65120.c: Likewise.
	* c-c++-common/tm/volatile-1.c (f): Likewise.
	* c-c++-common/vector-1.c (f): Likewise.
	* c-c++-common/vector-2.c (f): Likewise.
	* g++.dg/abi/abi-tag14.C (f): Likewise.
	(g): Likewise.
	* g++.dg/abi/abi-tag18.C (f): Likewise.
	* g++.dg/abi/abi-tag18a.C (f): Likewise.
	* g++.dg/abi/covariant2.C (struct c3): Likewise.
	(struct c7): Likewise.
	* g++.dg/abi/covariant3.C (c1::f6): Likewise.
	* g++.dg/abi/mangle7.C (f1): Likewise.
	* g++.dg/asan/pr81340.C (class e): Likewise.
	(e::f): Likewise.
	* g++.dg/concepts/fn8.C (struct S): Likewise.
	* g++.dg/concepts/pr65575.C (f): Likewise.
	* g++.dg/concepts/template-parm11.C (f): Likewise.
	* g++.dg/conversion/op6.C: Likewise.
	* g++.dg/cpp0x/Wunused-variable-1.C (foo): Likewise.
	* g++.dg/cpp0x/access01.C: Likewise.
	* g++.dg/cpp0x/alignas3.C (class alignas): Likewise.
	* g++.dg/cpp0x/auto2.C (f): Likewise.
	(struct A): Likewise.
	(main): Likewise.
	* g++.dg/cpp0x/constexpr-array17.C (struct D): Likewise.
	* g++.dg/cpp0x/constexpr-defarg2.C (a): Likewise.
	(B::foo): Likewise.
	(B::bar): Likewise.
	* g++.dg/cpp0x/constexpr-memfn1.C (struct Y): Likewise.
	* g++.dg/cpp0x/dc1.C (struct D): Likewise.
	* g++.dg/cpp0x/dc3.C (struct D): Likewise.
	* g++.dg/cpp0x/decltype12.C: Likewise.
	* g++.dg/cpp0x/decltype17.C (main): Likewise.
	* g++.dg/cpp0x/decltype3.C: Likewise.
	* g++.dg/cpp0x/decltype41.C (struct C): Likewise.
	(struct D): Likewise.
	* g++.dg/cpp0x/defaulted28.C (f): Likewise.
	* g++.dg/cpp0x/enum_base3.C (struct D): Likewise.
	* g++.dg/cpp0x/gen-attrs-4.C (five): Likewise.
	* g++.dg/cpp0x/initlist96.C: Likewise.
	* g++.dg/cpp0x/lambda/lambda-58566.C (struct A): Likewise.
	* g++.dg/cpp0x/lambda/lambda-conv10.C: Likewise.
	* g++.dg/cpp0x/lambda/lambda-conv12.C: Likewise.
	* g++.dg/cpp0x/lambda/lambda-defarg3.C: Likewise.
	* g++.dg/cpp0x/lambda/lambda-ice3.C (Klass::dostuff): Likewise.
	* g++.dg/cpp0x/lambda/lambda-ice5.C (foo): Likewise.
	* g++.dg/cpp0x/lambda/lambda-nested2.C (f1): Likewise.
	* g++.dg/cpp0x/lambda/lambda-template12.C (class X): Likewise.
	* g++.dg/cpp0x/lambda/lambda-template2.C (struct T): Likewise.
	* g++.dg/cpp0x/lambda/lambda-this12.C (struct A): Likewise.
	* g++.dg/cpp0x/nolinkage1.C (main): Likewise.
	* g++.dg/cpp0x/nolinkage1a.cc (dummy): Likewise.
	* g++.dg/cpp0x/nsdmi-template5.C: Likewise.
	* g++.dg/cpp0x/parse1.C (B::B): Likewise.
	* g++.dg/cpp0x/pr34054.C (foo): Likewise.
	* g++.dg/cpp0x/pr47416.C: Likewise.
	* g++.dg/cpp0x/pr58781.C: Likewise.
	* g++.dg/cpp0x/pr70538.C: Likewise.
	* g++.dg/cpp0x/pr81325.C: Likewise.
	* g++.dg/cpp0x/range-for13.C (begin): Likewise.
	(end): Likewise.
	* g++.dg/cpp0x/range-for14.C (begin): Likewise.
	(end): Likewise.
	* g++.dg/cpp0x/rv2n.C (test2_18): Likewise.
	(test2_28): Likewise.
	(test2_38): Likewise.
	(test2_58): Likewise.
	(test2_68): Likewise.
	(test2_78): Likewise.
	* g++.dg/cpp0x/rv3n.C (test3_128): Likewise.
	* g++.dg/cpp0x/static_assert10.C (foo): Likewise.
	* g++.dg/cpp0x/static_assert11.C (struct A): Likewise.
	* g++.dg/cpp0x/static_assert12.C: Likewise.
	* g++.dg/cpp0x/static_assert13.C: Likewise.
	* g++.dg/cpp0x/trailing1.C (struct A): Likewise.
	* g++.dg/cpp0x/trailing5.C (foo): Likewise.
	(bar): Likewise.
	* g++.dg/cpp0x/variadic114.C: Likewise.
	* g++.dg/cpp0x/variadic57.C (Dims...>::foo): Likewise.
	(bar): Likewise.
	* g++.dg/cpp0x/variadic65.C: Likewise.
	* g++.dg/cpp0x/variadic66.C (bind): Likewise.
	* g++.dg/cpp0x/variadic97.C: Likewise.
	* g++.dg/cpp0x/variadic98.C (__attribute__): Likewise.
	* g++.dg/cpp1y/auto-fn11.C: Likewise.
	* g++.dg/cpp1y/auto-fn29.C: Likewise.
	* g++.dg/cpp1y/auto-fn38.C: Likewise.
	* g++.dg/cpp1y/constexpr-return2.C: Likewise.
	* g++.dg/cpp1y/lambda-init7.C (foo): Likewise.
	* g++.dg/cpp1y/pr63996.C: Likewise.
	* g++.dg/cpp1y/pr65202.C: Likewise.
	* g++.dg/cpp1y/pr66443-cxx14.C (Ok): Likewise.
	* g++.dg/cpp1y/pr79253.C (struct D): Likewise.
	* g++.dg/cpp1y/static_assert1.C: Likewise.
	* g++.dg/cpp1y/static_assert2.C: Likewise.
	* g++.dg/cpp1y/var-templ44.C: Likewise.
	* g++.dg/cpp1z/fold6.C (f): Likewise.
	* g++.dg/cpp1z/inline-var2.C (foo): Likewise.
	* g++.dg/cpp1z/lambda-this1.C (struct B): Likewise.
	* g++.dg/cpp1z/static_assert-nomsg.C: Likewise.
	* g++.dg/debug/dwarf-eh-personality-1.C (foobar): Likewise.
	* g++.dg/debug/dwarf2/dwarf4-typedef.C (struct B): Likewise.
	* g++.dg/debug/dwarf2/icf.C: Likewise.
	* g++.dg/debug/dwarf2/pr61433.C (main): Likewise.
	* g++.dg/debug/nullptr01.C (g): Likewise.
	* g++.dg/debug/pr16792.C (foo): Likewise.
	* g++.dg/debug/pr46241.C (class btCollisionWorld): Likewise.
	* g++.dg/debug/pr46338.C (struct S): Likewise.
	* g++.dg/debug/pr47106.C (baz): Likewise.
	(bar): Likewise.
	(foo): Likewise.
	* g++.dg/debug/pr71057.C (fn1): Likewise.
	* g++.dg/debug/pr71432.C (class CLIParameterType): Likewise.
	(CLIParameterType::checkSwitched): Likewise.
	* g++.dg/debug/pr80461.C (struct B): Likewise.
	* g++.dg/dfp/44473-1.C (bar): Likewise.
	* g++.dg/dfp/44473-2.C (bar): Likewise.
	(foo): Likewise.
	* g++.dg/eh/builtin1.C: Likewise.
	* g++.dg/eh/builtin2.C: Likewise.
	* g++.dg/eh/builtin3.C: Likewise.
	* g++.dg/eh/pr45569.C (j): Likewise.
	* g++.dg/eh/unwind2.C: Likewise.
	* g++.dg/expr/bitfield11.C: Likewise.
	* g++.dg/expr/static_cast7.C (f): Likewise.
	* g++.dg/ext/altivec-14.C: Likewise.
	* g++.dg/ext/asm13.C (fn1): Likewise.
	* g++.dg/ext/builtin-object-size3.C: Likewise.
	* g++.dg/ext/has_nothrow_assign_odr.C (main): Likewise.
	(S::operator=): Likewise.
	* g++.dg/ext/label7.C (f): Likewise.
	* g++.dg/ext/label8.C (f): Likewise.
	* g++.dg/ext/tmplattr7.C (test): Likewise.
	* g++.dg/ext/vector8.C (f): Likewise.
	* g++.dg/ext/visibility/anon1.C: Likewise.
	* g++.dg/ext/visibility/anon2.C (f): Likewise.
	* g++.dg/ext/visibility/namespace1.C (__attribute): Likewise.
	* g++.dg/ext/vla16.C (fn1): Likewise.
	* g++.dg/goacc/reference.C: Likewise.
	* g++.dg/gomp/pr37189.C: Likewise.
	* g++.dg/gomp/pr39495-1.C: Likewise.
	* g++.dg/gomp/pr39495-2.C: Likewise.
	* g++.dg/gomp/pr82054.C: Likewise.
	* g++.dg/inherit/covariant10.C (struct c6): Likewise.
	(struct c17): Likewise.
	* g++.dg/inherit/covariant11.C (struct c1): Likewise.
	(struct c3): Likewise.
	(struct c11): Likewise.
	(struct c15): Likewise.
	* g++.dg/inherit/protected1.C (A::operator==): Likewise.
	* g++.dg/init/inline1.C (struct A): Likewise.
	* g++.dg/init/new18.C: Likewise.
	* g++.dg/init/reference2.C (f): Likewise.
	* g++.dg/init/reference3.C: Likewise.
	* g++.dg/init/switch1.C (f): Likewise.
	* g++.dg/ipa/devirt-10.C (struct wxDCBase): Likewise.
	* g++.dg/ipa/devirt-13.C (main): Likewise.
	* g++.dg/ipa/devirt-14.C (main): Likewise.
	* g++.dg/ipa/devirt-15.C (main): Likewise.
	* g++.dg/ipa/devirt-16.C (main): Likewise.
	* g++.dg/ipa/devirt-17.C (main): Likewise.
	* g++.dg/ipa/devirt-18.C (main): Likewise.
	* g++.dg/ipa/devirt-19.C: Likewise.
	* g++.dg/ipa/devirt-21.C (main): Likewise.
	* g++.dg/ipa/devirt-23.C (main): Likewise.
	* g++.dg/ipa/devirt-38.C: Likewise.
	* g++.dg/ipa/devirt-40.C (A::m_fn1): Likewise.
	* g++.dg/ipa/devirt-41.C (main): Likewise.
	* g++.dg/ipa/devirt-42.C (main): Likewise.
	* g++.dg/ipa/devirt-44.C (struct A): Likewise.
	(main): Likewise.
	* g++.dg/ipa/devirt-45.C (struct A): Likewise.
	(main): Likewise.
	* g++.dg/ipa/devirt-48.C (struct B): Likewise.
	(struct D): Likewise.
	* g++.dg/ipa/devirt-52.C: Likewise.
	* g++.dg/ipa/nothrow-1.C (main): Likewise.
	* g++.dg/ipa/pr43812.C (LocalSurface::bbox): Likewise.
	* g++.dg/ipa/pr44372.C: Likewise.
	* g++.dg/ipa/pr45572-1.C (fgetc_unlocked): Likewise.
	(putc_unlocked): Likewise.
	(getline): Likewise.
	(ferror_unlocked): Likewise.
	* g++.dg/ipa/pr58371.C: Likewise.
	* g++.dg/ipa/pr59176.C: Likewise.
	* g++.dg/ipa/pr60640-1.C (class G): Likewise.
	* g++.dg/ipa/pr61540.C (struct top): Likewise.
	* g++.dg/ipa/pr63470.C (class FTjackSupport): Likewise.
	* g++.dg/ipa/pr63587-1.C: Likewise.
	* g++.dg/ipa/pr63587-2.C: Likewise.
	* g++.dg/ipa/pr63838.C (__attribute__): Likewise.
	* g++.dg/ipa/pr63894.C (J::m_fn3): Likewise.
	* g++.dg/ipa/pr64068.C (class A): Likewise.
	(A::m_fn2): Likewise.
	(class C): Likewise.
	* g++.dg/ipa/pr64896.C (struct D): Likewise.
	* g++.dg/ipa/pr65002.C: Likewise.
	* g++.dg/ipa/pr65008.C (__attribute__): Likewise.
	* g++.dg/ipa/pr65465.C (struct D): Likewise.
	* g++.dg/ipa/pr66896.C (struct A): Likewise.
	* g++.dg/ipa/pr68851.C (class G): Likewise.
	(C::checkPseudoClass): Likewise.
	* g++.dg/ipa/pr78211.C: Likewise.
	* g++.dg/ipa/pr79931.C (AttrImpl::insertBefore): Likewise.
	* g++.dg/ipa/pure-const-1.C (main): Likewise.
	* g++.dg/ipa/pure-const-2.C (main): Likewise.
	* g++.dg/ipa/pure-const-3.C (main): Likewise.
	* g++.dg/ipa/remref-1.C (main): Likewise.
	* g++.dg/ipa/remref-2.C (main): Likewise.
	* g++.dg/lookup/builtin2.C (f): Likewise.
	* g++.dg/lookup/crash3.C (struct A): Likewise.
	(struct B): Likewise.
	(crash): Likewise.
	* g++.dg/lookup/friend20.C: Likewise.
	* g++.dg/lookup/pr80891-5.C (vf2_subgraph_iso): Likewise.
	* g++.dg/lookup/struct2.C (A::c): Likewise.
	* g++.dg/lto/20080709_0.C (f): Likewise.
	* g++.dg/lto/20080907_0.C: Likewise.
	* g++.dg/lto/20080915_0.C (struct Baz): Likewise.
	* g++.dg/lto/20080916_0.C (g): Likewise.
	* g++.dg/lto/20081022_0.C (main): Likewise.
	* g++.dg/lto/20081023_0.C (main): Likewise.
	* g++.dg/lto/20081118_0.C (foo::method): Likewise.
	* g++.dg/lto/20081118_1.C (bar::method): Likewise.
	* g++.dg/lto/20081120-1_0.C: Likewise.
	* g++.dg/lto/20081120-1_1.C: Likewise.
	* g++.dg/lto/20081127_1.C (main): Likewise.
	* g++.dg/lto/20081217-2_0.C (struct A): Likewise.
	* g++.dg/lto/20090303_0.C: Likewise.
	* g++.dg/lto/20090311-1_0.C: Likewise.
	* g++.dg/lto/20090312_0.C: Likewise.
	* g++.dg/lto/20090315_0.C (main): Likewise.
	* g++.dg/lto/20091002-1_0.C: Likewise.
	* g++.dg/lto/20091002-2_0.C (class DataArray): Likewise.
	* g++.dg/lto/20091002-3_0.C (class DataArray): Likewise.
	* g++.dg/lto/20091004-1_0.C: Likewise.
	* g++.dg/lto/20091004-2_0.C: Likewise.
	* g++.dg/lto/20091004-3_1.C (All_Torus_Intersections): Likewise.
	* g++.dg/lto/20100721-1_0.C (__gthread_active_p): Likewise.
	* g++.dg/lto/20101010-1_0.C: Likewise.
	* g++.dg/lto/20101010-2_0.C: Likewise.
	* g++.dg/lto/pr45679-1_0.C: Likewise.
	* g++.dg/lto/pr45679-1_1.C: Likewise.
	* g++.dg/lto/pr45679-2_0.C: Likewise.
	* g++.dg/lto/pr48042_0.C (B::x): Likewise.
	* g++.dg/lto/pr51650-1_0.C (fn): Likewise.
	(main): Likewise.
	* g++.dg/lto/pr51650-3_0.C (fn): Likewise.
	(main): Likewise.
	* g++.dg/lto/pr63270_1.C: Likewise.
	* g++.dg/lto/pr65193_0.C: Likewise.
	* g++.dg/lto/pr65302_0.C: Likewise.
	* g++.dg/lto/pr65316_0.C: Likewise.
	* g++.dg/lto/pr65475c_0.C: Likewise.
	* g++.dg/lto/pr65549_0.C (main): Likewise.
	* g++.dg/lto/pr69077_0.C (cWeightedStdDev::netPack): Likewise.
	* g++.dg/lto/pr69589_0.C: Likewise.
	* g++.dg/opt/combine.C (qvariant_cast): Likewise.
	(QScriptDebuggerBackendPrivate::trace): Likewise.
	* g++.dg/opt/complex3.C (j): Likewise.
	* g++.dg/opt/covariant1.C (struct T): Likewise.
	* g++.dg/opt/declone3.C (Item::m_fn1): Likewise.
	* g++.dg/opt/dump1.C (__attribute__): Likewise.
	* g++.dg/opt/inline15.C (struct C): Likewise.
	(fn2): Likewise.
	* g++.dg/opt/local1.C (h): Likewise.
	* g++.dg/opt/memcpy1.C (csBoxClipper::Clip): Likewise.
	* g++.dg/opt/new1.C: Likewise.
	* g++.dg/opt/nrv8.C (main): Likewise.
	* g++.dg/opt/pr23299.C (struct A): Likewise.
	(struct B): Likewise.
	(struct C): Likewise.
	* g++.dg/opt/pr27826.C (struct Geometry): Likewise.
	* g++.dg/opt/pr44919.C (back_inserter): Likewise.
	* g++.dg/opt/pr47615.C (main): Likewise.
	* g++.dg/opt/pr55329.C (struct A): Likewise.
	* g++.dg/opt/pr61456.C (Set): Likewise.
	* g++.dg/opt/pr65003.C (D::foo): Likewise.
	(F::foo): Likewise.
	* g++.dg/opt/pr65554.C: Likewise.
	* g++.dg/opt/pr69432.C (struct C): Likewise.
	* g++.dg/opt/pr78373.C (struct D): Likewise.
	(Traits>::m_fn4): Likewise.
	* g++.dg/opt/pr79267.C (struct F): Likewise.
	* g++.dg/opt/pr82159-2.C: Likewise.
	* g++.dg/other/array3.C (reserve): Likewise.
	* g++.dg/other/crash-5.C (f): Likewise.
	* g++.dg/other/crash-8.C: Likewise.
	* g++.dg/other/error34.C (S): Likewise.
	* g++.dg/other/pr22003.C (c3::func): Likewise.
	* g++.dg/other/pr24623.C (RefCountPointer): Likewise.
	* g++.dg/other/pr29610.C (struct __normal_iterator): Likewise.
	(Painter::for_each): Likewise.
	(Painter::redraw_window): Likewise.
	* g++.dg/other/pr42645-1.C (struct S): Likewise.
	* g++.dg/other/pr42645-2.C (foo): Likewise.
	(f3): Likewise.
	* g++.dg/other/pr52048.C: Likewise.
	* g++.dg/other/typedef3.C (XalanCProcessor::getParseOption): Likewise.
	* g++.dg/overload/defarg4.C (class foo): Likewise.
	(bar::Initialize): Likewise.
	* g++.dg/overload/operator5.C (equalIgnoringCase): Likewise.
	* g++.dg/overload/ref-conv1.C: Likewise.
	* g++.dg/overload/template5.C (test): Likewise.
	* g++.dg/parse/crash40.C (class AAA): Likewise.
	* g++.dg/parse/crash61.C: Likewise.
	* g++.dg/parse/crash67.C: Likewise.
	* g++.dg/parse/ctor5.C: Likewise.
	* g++.dg/parse/defarg4.C (Foo): Likewise.
	* g++.dg/parse/defarg6.C: Likewise.
	* g++.dg/parse/error5.C (class Foo): Likewise.
	* g++.dg/parse/expr2.C (foo): Likewise.
	* g++.dg/parse/friend7.C: Likewise.
	* g++.dg/parse/namespace1.C (bar): Likewise.
	* g++.dg/parse/namespace9.C (g): Likewise.
	* g++.dg/parse/ret-type2.C: Likewise.
	* g++.dg/parse/typedef8.C (foo): Likewise.
	* g++.dg/pch/static-1.C (LocalStaticTest): Likewise.
	(main): Likewise.
	* g++.dg/plugin/diagnostic-test-expressions-1.C (test_structure_references): Likewise.
	(test_postfix_incdec): Likewise.
	(test_sizeof): Likewise.
	(test_alignof): Likewise.
	(test_prefix_incdec): Likewise.
	* g++.dg/plugin/dumb-plugin-test-1.C (func): Likewise.
	* g++.dg/plugin/self-assign-test-1.C (func): Likewise.
	* g++.dg/plugin/self-assign-test-2.C (func): Likewise.
	* g++.dg/plugin/self-assign-test-3.C (func): Likewise.
	* g++.dg/pr55513.C (main): Likewise.
	* g++.dg/pr55604.C (main): Likewise.
	* g++.dg/pr57662.C: Likewise.
	* g++.dg/pr58389.C (F::m_fn1): Likewise.
	* g++.dg/pr59510.C: Likewise.
	* g++.dg/pr67989.C: Likewise.
	* g++.dg/pr70590-2.C: Likewise.
	* g++.dg/pr70590.C: Likewise.
	* g++.dg/pr70965.C (foo): Likewise.
	* g++.dg/pr77550.C: Likewise.
	* g++.dg/pr80287.C (struct A): Likewise.
	* g++.dg/pr80707.C (A::m_fn1): Likewise.
	* g++.dg/pr81194.C: Likewise.
	* g++.dg/spellcheck-identifiers.C: Likewise.
	* g++.dg/tc1/dr152.C: Likewise.
	* g++.dg/template/aggr-init1.C (CreateA): Likewise.
	* g++.dg/template/anon1.C (struct x): Likewise.
	(struct vector): Likewise.
	* g++.dg/template/array29.C: Likewise.
	* g++.dg/template/array7.C (bar): Likewise.
	* g++.dg/template/canon-type-8.C: Likewise.
	* g++.dg/template/conv1.C (First::Foo): Likewise.
	* g++.dg/template/crash107.C: Likewise.
	* g++.dg/template/crash23.C (f): Likewise.
	* g++.dg/template/crash8.C (struct bar): Likewise.
	* g++.dg/template/defarg4.C (struct A): Likewise.
	* g++.dg/template/dependent-expr9.C: Likewise.
	* g++.dg/template/error10.C (Btest): Likewise.
	* g++.dg/template/friend32.C (f): Likewise.
	* g++.dg/template/init6.C (Graph::Inner::get): Likewise.
	(main): Likewise.
	* g++.dg/template/memfriend7.C (A::h): Likewise.
	* g++.dg/template/new10.C (Analyzer::ReadDictionary): Likewise.
	* g++.dg/template/nontype12.C (baz): Likewise.
	* g++.dg/template/overload12.C (foo2): Likewise.
	* g++.dg/template/overload5.C (foo::f): Likewise.
	* g++.dg/template/overload8.C (struct A): Likewise.
	* g++.dg/template/partial10.C (fn): Likewise.
	(main): Likewise.
	* g++.dg/template/partial9.C (f): Likewise.
	* g++.dg/template/qual1.C (shift_compare): Likewise.
	* g++.dg/template/show-template-tree-3.C: Likewise.
	* g++.dg/template/sizeof8.C (S<sizeof): Likewise.
	* g++.dg/template/sizeof9.C (d): Likewise.
	* g++.dg/template/spec6.C: Likewise.
	* g++.dg/template/spec7.C (h): Likewise.
	* g++.dg/template/typedef8.C: Likewise.
	* g++.dg/template/using20.C (f): Likewise.
	* g++.dg/template/vla1.C (label): Likewise.
	* g++.dg/tm/cgraph_edge.C: Likewise.
	* g++.dg/tm/pr46646.C: Likewise.
	* g++.dg/tm/pr47554.C (class list): Likewise.
	* g++.dg/tm/pr47573.C (getStringHeight): Likewise.
	* g++.dg/tm/unsafe1.C (f): Likewise.
	* g++.dg/tm/unsafe2.C (g): Likewise.
	* g++.dg/torture/pr70971.C: Likewise.
	* g++.dg/torture/20070621-1.C: Likewise.
	* g++.dg/torture/20090329-1.C: Likewise.
	* g++.dg/torture/20141013.C: Likewise.
	* g++.dg/torture/pr33134.C (fxsaveGIF): Likewise.
	* g++.dg/torture/pr33340.C (new): Likewise.
	* g++.dg/torture/pr33627.C (class pf_Frag): Likewise.
	* g++.dg/torture/pr34222.C (readFloat): Likewise.
	* g++.dg/torture/pr34241.C (test): Likewise.
	* g++.dg/torture/pr34641.C: Likewise.
	* g++.dg/torture/pr34850.C (OctetString::operator^=): Likewise.
	* g++.dg/torture/pr35164-1.C: Likewise.
	* g++.dg/torture/pr36745.C: Likewise.
	* g++.dg/torture/pr38705.C (S::bar): Likewise.
	* g++.dg/torture/pr38811.C (AbcAbcdTracer::TestIsoAbcde): Likewise.
	* g++.dg/torture/pr39362.C: Likewise.
	* g++.dg/torture/pr39732.C (f): Likewise.
	* g++.dg/torture/pr40991.C: Likewise.
	* g++.dg/torture/pr41775.C: Likewise.
	* g++.dg/torture/pr42183.C: Likewise.
	* g++.dg/torture/pr42450.C: Likewise.
	* g++.dg/torture/pr42704.C: Likewise.
	* g++.dg/torture/pr42760.C (baz): Likewise.
	(bar): Likewise.
	* g++.dg/torture/pr42773.C (Cell::obscuringCells): Likewise.
	* g++.dg/torture/pr42883.C: Likewise.
	* g++.dg/torture/pr43905.C (struct Matrix): Likewise.
	* g++.dg/torture/pr44148.C: Likewise.
	* g++.dg/torture/pr44295.C: Likewise.
	* g++.dg/torture/pr44357.C: Likewise.
	* g++.dg/torture/pr44813.C: Likewise.
	* g++.dg/torture/pr45580.C: Likewise.
	* g++.dg/torture/pr45874.C (Mpeg2FrameConstructor::ParsePictureHeader): Likewise.
	* g++.dg/torture/pr45877.C: Likewise.
	* g++.dg/torture/pr46383.C: Likewise.
	* g++.dg/torture/pr46469.C (__attribute__): Likewise.
	(identifierByPthreadHandle): Likewise.
	* g++.dg/torture/pr47313.C: Likewise.
	* g++.dg/torture/pr48271.C: Likewise.
	* g++.dg/torture/pr49615.C (Dispatch): Likewise.
	(C::f): Likewise.
	* g++.dg/torture/pr49770.C (main): Likewise.
	* g++.dg/torture/pr49938.C: Likewise.
	* g++.dg/torture/pr51436.C: Likewise.
	* g++.dg/torture/pr51482.C (anim_track_bez_wvect::tangent): Likewise.
	* g++.dg/torture/pr51737.C (id_state::start_file): Likewise.
	* g++.dg/torture/pr51959.C: Likewise.
	* g++.dg/torture/pr52772.C (class c6): Likewise.
	* g++.dg/torture/pr52918-2.C (__cxa_allocate_exception): Likewise.
	* g++.dg/torture/pr53011.C: Likewise.
	* g++.dg/torture/pr53602.C: Likewise.
	* g++.dg/torture/pr53752.C: Likewise.
	* g++.dg/torture/pr54838.C: Likewise.
	* g++.dg/torture/pr54902.C: Likewise.
	* g++.dg/torture/pr56029.C: Likewise.
	* g++.dg/torture/pr56768.C (operator!=): Likewise.
	* g++.dg/torture/pr57107.C: Likewise.
	* g++.dg/torture/pr57140.C: Likewise.
	* g++.dg/torture/pr57235.C: Likewise.
	* g++.dg/torture/pr58252.C: Likewise.
	* g++.dg/torture/pr58555.C: Likewise.
	* g++.dg/torture/pr59208.C (get_dbx_doc): Likewise.
	* g++.dg/torture/pr60438-1.C (foo): Likewise.
	* g++.dg/torture/pr60746.C (Two::run): Likewise.
	* g++.dg/torture/pr61554.C: Likewise.
	* g++.dg/torture/pr63419.C: Likewise.
	* g++.dg/torture/pr63476.C: Likewise.
	* g++.dg/torture/pr63512.C (C::m_fn3): Likewise.
	* g++.dg/torture/pr64282.C (class H): Likewise.
	* g++.dg/torture/pr64378.C (struct top): Likewise.
	* g++.dg/torture/pr64565.C: Likewise.
	* g++.dg/torture/pr64568-2.C: Likewise.
	* g++.dg/torture/pr64669.C (Lex::advance_one_char): Likewise.
	* g++.dg/torture/pr64686.C (B::m_fn1): Likewise.
	* g++.dg/torture/pr64978.C (B::m_fn2): Likewise.
	* g++.dg/torture/pr64995.C (A::m_fn2): Likewise.
	* g++.dg/torture/pr65655.C: Likewise.
	* g++.dg/torture/pr65851.C: Likewise.
	* g++.dg/torture/pr67055.C: Likewise.
	* g++.dg/torture/pr67191.C: Likewise.
	* g++.dg/torture/pr68852.C: Likewise.
	* g++.dg/torture/pr69264.C: Likewise.
	* g++.dg/torture/pr77674.C: Likewise.
	* g++.dg/torture/pr77947.C (B::m_fn2): Likewise.
	* g++.dg/torture/pr78268.C: Likewise.
	* g++.dg/torture/pr78507.C: Likewise.
	* g++.dg/torture/pr78692.C (F::g): Likewise.
	* g++.dg/torture/pr80171.C: Likewise.
	* g++.dg/torture/pr82154.C (class f): Likewise.
	(f::k): Likewise.
	* g++.dg/tree-ssa/copyprop.C: Likewise.
	* g++.dg/tree-ssa/pr22444.C: Likewise.
	* g++.dg/tree-ssa/pr23948.C (make_scheduler_request): Likewise.
	* g++.dg/tree-ssa/pr24172.C (dummy): Likewise.
	* g++.dg/tree-ssa/pr24351-3.C: Likewise.
	* g++.dg/tree-ssa/pr27283.C: Likewise.
	* g++.dg/tree-ssa/pr27291.C: Likewise.
	* g++.dg/tree-ssa/pr27548.C: Likewise.
	* g++.dg/tree-ssa/pr34355.C (Parse_Float): Likewise.
	* g++.dg/tree-ssa/pr42337.C: Likewise.
	* g++.dg/tree-ssa/pred-1.C (main): Likewise.
	* g++.dg/ubsan/pr65019.C (C::foo): Likewise.
	* g++.dg/ubsan/pr65583.C: Likewise.
	* g++.dg/vect/pr60836.cc (norm_): Likewise.
	* g++.dg/vect/pr68145.cc: Likewise.
	* g++.dg/vect/pr70729-nest.cc (my_alloc): Likewise.
	* g++.dg/vect/pr70729.cc (my_alloc): Likewise.
	* g++.dg/warn/Waddress-3.C: Likewise.
	* g++.dg/warn/Wconversion-null-2.C (warn_for___null): Likewise.
	* g++.dg/warn/Wnull-conversion-2.C (main): Likewise.
	* g++.dg/warn/Wparentheses-10.C: Likewise.
	* g++.dg/warn/Wparentheses-11.C: Likewise.
	* g++.dg/warn/Wparentheses-12.C: Likewise.
	* g++.dg/warn/Wparentheses-25.C: Likewise.
	* g++.dg/warn/Wparentheses-6.C: Likewise.
	* g++.dg/warn/Wparentheses-7.C: Likewise.
	* g++.dg/warn/Wparentheses-8.C: Likewise.
	* g++.dg/warn/Wparentheses-9.C: Likewise.
	* g++.dg/warn/Wshadow-5.C: Likewise.
	* g++.dg/warn/Wtype-limits-Wextra.C (ff): Likewise.
	(gg): Likewise.
	* g++.dg/warn/Wtype-limits-no.C (ff): Likewise.
	(gg): Likewise.
	* g++.dg/warn/Wtype-limits.C (ff): Likewise.
	(gg): Likewise.
	* g++.dg/warn/Wunused-local-typedefs.C: Likewise.
	* g++.dg/warn/Wzero-as-null-pointer-constant-5.C: Likewise.
	* g++.dg/warn/pmf1.C (a::f): Likewise.
	* g++.old-deja/g++.benjamin/p13417.C: Likewise.
	* g++.old-deja/g++.brendan/crash24.C (main): Likewise.
	* g++.old-deja/g++.ext/constructor.C: Likewise.
	* g++.old-deja/g++.ext/namedret1.C (f): Likewise.
	* g++.old-deja/g++.ext/namedret3.C: Likewise.
	* g++.old-deja/g++.ext/return1.C: Likewise.
	* g++.old-deja/g++.jason/anon4.C (main): Likewise.
	* g++.old-deja/g++.jason/enum6.C: Likewise.
	* g++.old-deja/g++.jason/lineno2.C (main): Likewise.
	* g++.old-deja/g++.jason/lineno3.C: Likewise.
	* g++.old-deja/g++.jason/lineno4.C: Likewise.
	* g++.old-deja/g++.jason/new2.C (main): Likewise.
	* g++.old-deja/g++.jason/new4.C (main): Likewise.
	* g++.old-deja/g++.jason/shadow1.C (main): Likewise.
	* g++.old-deja/g++.jason/tempcons.C (struct A): Likewise.
	* g++.old-deja/g++.jason/thunk2.C (main): Likewise.
	* g++.old-deja/g++.law/builtin1.C (main): Likewise.
	* g++.old-deja/g++.law/enum9.C: Likewise.
	* g++.old-deja/g++.law/except3.C: Likewise.
	* g++.old-deja/g++.law/init6.C: Likewise.
	* g++.old-deja/g++.law/profile1.C (main): Likewise.
	* g++.old-deja/g++.law/shadow2.C (main): Likewise.
	* g++.old-deja/g++.law/temps4.C (main): Likewise.
	* g++.old-deja/g++.mike/bool2.C (main): Likewise.
	* g++.old-deja/g++.mike/eh1.C: Likewise.
	* g++.old-deja/g++.mike/eh10.C: Likewise.
	* g++.old-deja/g++.mike/eh13.C (main): Likewise.
	* g++.old-deja/g++.mike/eh16.C: Likewise.
	* g++.old-deja/g++.mike/eh17.C: Likewise.
	* g++.old-deja/g++.mike/eh2.C: Likewise.
	* g++.old-deja/g++.mike/eh23.C: Likewise.
	* g++.old-deja/g++.mike/eh24.C: Likewise.
	* g++.old-deja/g++.mike/eh25.C: Likewise.
	* g++.old-deja/g++.mike/eh26.C: Likewise.
	* g++.old-deja/g++.mike/eh27.C: Likewise.
	* g++.old-deja/g++.mike/eh28.C: Likewise.
	* g++.old-deja/g++.mike/eh29.C: Likewise.
	* g++.old-deja/g++.mike/eh30.C: Likewise.
	* g++.old-deja/g++.mike/eh31.C: Likewise.
	* g++.old-deja/g++.mike/eh35.C: Likewise.
	* g++.old-deja/g++.mike/eh36.C: Likewise.
	* g++.old-deja/g++.mike/eh37.C: Likewise.
	* g++.old-deja/g++.mike/eh38.C: Likewise.
	* g++.old-deja/g++.mike/eh39.C: Likewise.
	* g++.old-deja/g++.mike/eh40.C: Likewise.
	* g++.old-deja/g++.mike/eh47.C: Likewise.
	* g++.old-deja/g++.mike/eh50.C: Likewise.
	* g++.old-deja/g++.mike/eh51.C: Likewise.
	* g++.old-deja/g++.mike/eh7.C: Likewise.
	* g++.old-deja/g++.mike/eh8.C: Likewise.
	* g++.old-deja/g++.mike/eh9.C: Likewise.
	* g++.old-deja/g++.mike/mangle1.C: Likewise.
	* g++.old-deja/g++.mike/p5958.C: Likewise.
	* g++.old-deja/g++.mike/p6004.C: Likewise.
	* g++.old-deja/g++.mike/p700.C: Likewise.
	* g++.old-deja/g++.mike/p7912.C: Likewise.
	* g++.old-deja/g++.mike/p811.C (main): Likewise.
	* g++.old-deja/g++.mike/virt4.C (main): Likewise.
	* g++.old-deja/g++.oliva/nameret1.C: Likewise.
	* g++.old-deja/g++.oliva/nameret2.C: Likewise.
	* g++.old-deja/g++.other/decl1.C (bar): Likewise.
	* g++.old-deja/g++.other/expr1.C (struct T): Likewise.
	(main): Likewise.
	* g++.old-deja/g++.other/inline8.C (main): Likewise.
	* g++.old-deja/g++.other/loop1.C: Likewise.
	* g++.old-deja/g++.other/syntax1.C (main): Likewise.
	* g++.old-deja/g++.pt/repo3.C (main): Likewise.
	* g++.old-deja/g++.robertl/eb27.C (main): Likewise.
	* g++.old-deja/g++.robertl/eb83.C (main): Likewise.
	* gcc.dg/pr44545.c: Likewise.
	* obj-c++.dg/comp-types-8.mm: Likewise.
	* obj-c++.dg/demangle-3.mm: Likewise.
	* obj-c++.dg/super-class-1.mm: Likewise.

From-SVN: r254440
2017-11-06 09:05:03 +00:00
Segher Boessenkool
c3e150d23a rs6000: Implement insn_cost for mfcr, mfcrf
This gives mfcrf a cost of three integer insns, just like we do for sync
and load-with-reservation already.


	* config/rs6000/rs6000.c (rs6000_insn_cost): Handle TYPE_MFCR and
	TYPE_MFCRF.

From-SVN: r254439
2017-11-06 10:04:23 +01:00
Martin Liska
23dbc16908 Fix all tests that fail with -sanitize=return.
2017-11-06  Martin Liska  <mliska@suse.cz>

	* c-c++-common/dfp/call-by-value.c (foo32): Return a default
	value of change return type to void.
	(foo64): Likewise.
	(foo128): Likewise.
	* g++.dg/bprob/g++-bprob-1.C: Likewise.
	* g++.dg/cpp0x/lambda/lambda-template.C (f): Likewise.
	* g++.dg/cpp0x/range-for6.C (foo): Likewise.
	* g++.dg/cpp0x/udlit-template.C: Likewise.
	* g++.dg/cpp1z/eval-order3.C (struct A): Likewise.
	(operator>>): Likewise.
	* g++.dg/expr/cond12.C (struct X): Likewise.
	(X::operator=): Likewise.
	* g++.dg/gcov/gcov-1.C: Likewise.
	* g++.dg/gcov/gcov-threads-1.C (ContentionNoDeadlock_thread): Likewise.
	* g++.dg/ipa/devirt-21.C: Likewise.
	* g++.dg/ipa/devirt-23.C: Likewise.
	* g++.dg/ipa/devirt-34.C (t): Likewise.
	* g++.dg/missing-return.C: New test. Likewise.
	* g++.dg/opt/20050511-1.C (bar): Likewise.
	* g++.dg/opt/const3.C (A::foo1): Likewise.
	(A::foo2): Likewise.
	* g++.dg/opt/pr23299.C (E::c): Likewise.
	* g++.dg/other/copy2.C (A::operator=): Likewise.
	* g++.dg/overload/addr1.C: Likewise.
	* g++.dg/pr48484.C: Likewise.
	* g++.dg/tls/thread_local3.C (thread_main): Likewise.
	* g++.dg/tls/thread_local3g.C (thread_main): Likewise.
	* g++.dg/tls/thread_local5.C (thread_main): Likewise.
	* g++.dg/tls/thread_local5g.C (thread_main): Likewise.
	* g++.dg/tls/thread_local6.C (thread_main): Likewise.
	* g++.dg/tls/thread_local6g.C (thread_main): Likewise.
	* g++.dg/torture/pr34850.C (OctetString::operator^=): Likewise.
	* g++.dg/tree-prof/pr79259.C (fn2): Likewise.
	* g++.dg/tree-ssa/pr33604.C (struct Value): Likewise.
	* g++.dg/tree-ssa/pr81408.C (struct p): Likewise.
	(av): Likewise.
	* g++.dg/warn/string1.C (test): Likewise.

From-SVN: r254438
2017-11-06 09:02:33 +00:00
Martin Liska
1b6fa695ab Instrument function exit with __builtin_unreachable in C++
2017-11-06  Martin Liska  <mliska@suse.cz>

	PR middle-end/82404
	* c-opts.c (c_common_post_options): Set -Wreturn-type for C++
	FE.
	* c.opt: Set default value of warn_return_type.
2017-11-06  Martin Liska  <mliska@suse.cz>

	PR middle-end/82404
	* constexpr.c (cxx_eval_builtin_function_call): Handle
	__builtin_unreachable call.
	(get_function_named_in_call): Declare function earlier.
	(constexpr_fn_retval): Skip __builtin_unreachable.
	* cp-gimplify.c (cp_ubsan_maybe_instrument_return): Rename to
	...
	(cp_maybe_instrument_return): ... this.
	(cp_genericize): Call the function unconditionally.
2017-11-06  Martin Liska  <mliska@suse.cz>

	PR middle-end/82404
	* options.c (gfc_post_options): Set default value of
	-Wreturn-type to false.

From-SVN: r254437
2017-11-06 09:02:15 +00:00
Richard Sandiford
3232f0521c Rework vrp_int_const_binop interface
...to avoid a warning about uninitialised wide_ints.

2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	* tree-vrp.c (vrp_int_const_binop): Return true on success and
	return the value by pointer.
	(extract_range_from_multiplicative_op_1): Update accordingly.
	Return as soon as an operation fails.

From-SVN: r254436
2017-11-06 08:59:09 +00:00
GCC Administrator
469f5da70a Daily bump.
From-SVN: r254435
2017-11-06 00:16:17 +00:00
Thomas Koenig
d88412fc51 re PR fortran/82471 (Reorder loop for unfavorable index ordering in DO CONCURRENT and FORALL)
2017-11-05  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/82471
	* lang.opt (ffrontend-loop-interchange): New option.
	(Wfrontend-loop-interchange): New option.
	* options.c (gfc_post_options): Handle ffrontend-loop-interchange.
	* frontend-passes.c (gfc_run_passes): Run
	optimize_namespace if flag_frontend_optimize or
	flag_frontend_loop_interchange are set.
	(optimize_namespace): Run functions according to flags set;
	also call index_interchange.
	(ind_type): New function.
	(has_var): New function.
	(index_cost): New function.
	(loop_comp): New function.

2017-11-05  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/82471
	* gfortran.dg/loop_interchange_1.f90: New test.

From-SVN: r254430
2017-11-05 17:24:37 +00:00
Paul Thomas
5233d45559 re PR fortran/78641 ([OOP] ICE on polymorphic allocatable function in array constructor)
2017-11-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/78641
	* resolve.c (resolve_ordinary_assign): Do not add the _data
	component for class valued array constructors being assigned
	to derived type arrays.
	* trans-array.c (gfc_trans_array_ctor_element): Take the _data
	of class valued elements for assignment to derived type arrays.

2017-11-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/78641
	* gfortran.dg/class_66.f90: New test.

From-SVN: r254428
2017-11-05 14:32:05 +00:00
Paul Thomas
aea5e9327a re PR fortran/81447 ([7/8] gfortran fails to recognize the exact dynamic type of a polymorphic entity that was allocated in a external procedure)
2017-11-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/81447
	PR fortran/82783
	* resolve.c (resolve_component): There is no need to resolve
	the components of a use associated vtype.
	(resolve_fl_derived): Unconditionally generate a vtable for any
	module derived type, as long as the standard is F2003 or later
	and it is not a vtype or a PDT template.

2017-11-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/81447
	* gfortran.dg/class_65.f90: New test.
	* gfortran.dg/alloc_comp_basics_1.f90: Increase builtin_free
	count from 18 to 21.
	* gfortran.dg/allocatable_scalar_9.f90: Increase builtin_free
	count from 32 to 54.
	* gfortran.dg/auto_dealloc_1.f90: Increase builtin_free
	count from 4 to 10.
	* gfortran.dg/coarray_lib_realloc_1.f90: Increase builtin_free
	count from 3 to 6. Likewise _gfortran_caf_deregister from 2 to
	3, builtin_malloc from 1 to 4 and builtin_memcpy|= MEM from
	2 to 5.
	* gfortran.dg/finalize_28.f90: Increase builtin_free
	count from 3 to 6.
	* gfortran.dg/move_alloc_15.f90: Increase builtin_free and
	builtin_malloc counts from 11 to 14.
	* gfortran.dg/typebound_proc_27.f03: Increase builtin_free
	count from 7 to 10. Likewise builtin_malloc from 12 to 15.

From-SVN: r254427
2017-11-05 12:38:42 +00:00
Gerald Pfeifer
ba89e5d5a7 * doc/xml/manual/abi.xml: Move docs.oracle.com references to https.
From-SVN: r254426
2017-11-05 11:14:38 +00:00
Tom de Vries
67c6769bc0 Remove semicolon after do {} while (0) in DEF_SANITIZER_BUILTIN
2017-11-05  Tom de Vries  <tom@codesourcery.com>

	PR other/82784
	* asan.c (DEF_SANITIZER_BUILTIN_1): Factor out of ...
	(DEF_SANITIZER_BUILTIN): ... here.
	(initialize_sanitizer_builtins): Use DEF_SANITIZER_BUILTIN_1 instead of
	DEF_SANITIZER_BUILTIN in if stmt.  Add missing semicolon.

From-SVN: r254425
2017-11-05 09:58:27 +00:00
Tom de Vries
c830c7d5c7 [libcpp] Remove semicolon after do {} while (0) in BUF_APPEND
2017-11-05  Tom de Vries  <tom@codesourcery.com>

	PR other/82784
	* lex.c (BUF_APPEND): Remove semicolon after
	"do {} while (0)".

From-SVN: r254424
2017-11-05 09:58:16 +00:00
Tom de Vries
9739c3d303 Remove semicolon after ASM_OUTPUT_BEFORE_CASE_LABEL macro body
2017-11-05  Tom de Vries  <tom@codesourcery.com>

	PR other/82784
	* config/elfos.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon after
	macro body.
	(ASM_OUTPUT_CASE_LABEL): Add semicolon after
	ASM_OUTPUT_BEFORE_CASE_LABEL call.
	* config/arc/arc.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon
	after macro body.
	* config/m68k/m68kelf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
	* config/mips/mips.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
	* config/v850/v850.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.

From-SVN: r254423
2017-11-05 09:58:05 +00:00
Tom de Vries
b4ef293194 [fortran] Remove semicolon after do {} while (0) in match macros
2017-11-05  Tom de Vries  <tom@codesourcery.com>

	PR other/82784
	* parse.c (match, matcha, matchs, matcho, matchds, matchdo): Remove
	semicolon after "do {} while (0)".

From-SVN: r254422
2017-11-05 09:57:53 +00:00
Tom de Vries
f9c1b67a39 [graphite] Remove semicolon after do {} while (0) in DEBUG_PRINT
2017-11-05  Tom de Vries  <tom@codesourcery.com>

	PR other/82784
	* graphite-scop-detection.c (DEBUG_PRINT): Remove semicolon after
	"do {} while (0)".

From-SVN: r254421
2017-11-05 09:57:43 +00:00
Tom de Vries
51c20aa35a [libquadmath] Remove semicolon after do {} while (0) in MPN_MUL_N_RECURSE
2017-11-05  Tom de Vries  <tom@codesourcery.com>

	PR other/82784
	* printf/gmp-impl.h (MPN_MUL_N_RECURSE): Remove semicolon after
	"do {} while (0)".

From-SVN: r254420
2017-11-05 09:57:30 +00:00
Tom de Vries
735e62b905 [libsanitizer] Remove semicolon after do {} while (0) in macro body
2017-11-05  Tom de Vries  <tom@codesourcery.com>

	PR other/82784
	* asan/asan_poisoning.cc (CHECK_SMALL_REGION): Remove semicolon after
	"do {} while (0)".
	* lsan/lsan_common.cc (LOG_POINTERS, LOG_THREADS): Same.

From-SVN: r254419
2017-11-05 09:57:17 +00:00
Michael Clark
0791ac186b RISC-V: Emit "i" suffix for instructions with immediate operands
This changes makes GCC asm output use instruction names that are
consistent with the RISC-V ISA manual.  The assembler accepts
immediate-operand instructions without the "i" suffix, so this all
worked before, it's just a bit cleaner to match the ISA manual more
closely.

gcc/ChangeLog

2017-10-03  Michael Clark  <michaeljclark@mac.com>

        * config/riscv/riscv.c (riscv_print_operand): Add a 'i' format.
        config/riscv/riscv.md (addsi3): Use 'i' for immediates.
        (adddi3): Likewise.
        (*addsi3_extended): Likewise.
        (*addsi3_extended2): Likewise.
        (<optab>si3): Likewise.
        (<optab>di3): Likewise.
        (<optab><mode>3): Likewise.
        (<*optabe>si3_internal): Likewise.
        (zero_extendqi<SUPERQI:mode>2): Likewise.
        (*add<mode>hi3): Likewise.
        (*xor<mode>hi3): Likewise.
        (<optab>di3): Likewise.
        (*<optab>si3_extend): Likewise.
        (*sge<u>_<X:mode><GPR:mode>): Likewise.
        (*slt<u>_<X:mode><GPR:mode>): Likewise.
        (*sle<u>_<X:mode><GPR:mode>): Likewise.

From-SVN: r254418
2017-11-05 00:42:54 +00:00
Andrew Waterman
caf1c1cd12 RISC-V: If -m[no-]strict-align is not passed, assume its value from -mtune
2017-11-04  Andrew Waterman  <andrew@sifive.com>

	* config/riscv/riscv.c (riscv_option_override): Conditionally set
	TARGET_STRICT_ALIGN based upon -mtune argument.

From-SVN: r254417
2017-11-05 00:39:01 +00:00
Andrew Waterman
ecc82a8d05 RISC-V: Set SLOW_BYTE_ACCESS=1
When implementing the RISC-V port, I took the name of this macro at
face value.  It appears we were mistaken in what this means, here's a
quote from the SPARC port that better describes what SLOW_BYTE_ACCESS
does

    /* Nonzero if access to memory by bytes is slow and undesirable.
       For RISC chips, it means that access to memory by bytes is no
       better than access by words when possible, so grab a whole word
       and maybe make use of that.  */

I've added the comment to our port as well.

See https://gcc.gnu.org/ml/gcc/2017-08/msg00202.html for more
discussion.  Thanks to Michael Clark and Andrew Pinski for the help!

gcc/ChangeLog

2017-11-04  Andrew Waterman  <andrew@sifive.com>

        * config/riscv/riscv.h (SLOW_BYTE_ACCESS): Change to 1.

From-SVN: r254416
2017-11-05 00:30:40 +00:00
GCC Administrator
d327feb3d7 Daily bump.
From-SVN: r254415
2017-11-05 00:16:12 +00:00
Daniel Santos
173399a0b4 PR target/82002 Part 2: Correct non-immediate offset/invalid INSN
When we are realigning the stack pointer, making an ms_abi to sysv_abi
call and allocating 2GiB or more on the stack we end up with an invalid
INSN due to a non-immediate offset.  This occurs both with and without
-mcall-ms2sysv-xlogues.  Additionally, the stack allocation with
-mcall-ms2sysv-xlogues is ignoring (silently disabling) stack checking,
stack clash checking and probing.

This patch fixes these problems by:

1. No longer allocate stack space in ix86_emit_outlined_ms2sysv_save.
2. Rearrange where we emit SSE saves or stub call:
   a. Before frame allocation when offset from frame to save area is >= 2GiB.
   b. After frame allocation when frame is < 2GiB.  (Stack allocations
      prior to the stub call can't be combined with those afterwards, so
      this is better when possible.)
3. Modify choose_baseaddr to take an optional scratch_regno argument
   and never return rtx that cannot be used as an immediate.

gcc:
	config/i386/i386.c (choose_basereg): Use optional scratch
	register and add assertion.
	(x86_emit_outlined_ms2sysv_save): Use scratch register when
	needed, and don't allocate stack.
	(ix86_expand_prologue): Rearrange where SSE saves/stub call is
	emitted, correct wrong allocation with -mcall-ms2sysv-xlogues.
	(ix86_emit_outlined_ms2sysv_restore): Fix non-immediate offsets.

gcc/testsuite:
	gcc.target/i386/pr82002-2a.c: Change from xfail to fail.
	gcc.target/i386/pr82002-2b.c: Likewise.

From-SVN: r254412
2017-11-04 22:38:43 +00:00
Andreas Tobler
59fcf6c3ec re PR libgcc/82635 (std::thread's join broken on FreeBSD with all GCCs >= 5)
2017-11-04  Andreas Tobler  <andreast@gcc.gnu.org>

    PR libgcc/82635
    * config/i386/freebsd-unwind.h (MD_FALLBACK_FRAME_STATE_FOR): Use a
    sysctl to determine whether we're in a trampoline.
    Keep the pattern matching method for systems without
    KERN_PROC_SIGTRAMP sysctl.

From-SVN: r254411
2017-11-04 20:40:23 +01:00