Commit Graph

139859 Commits

Author SHA1 Message Date
Alan Lawrence
4347617fdf [ARM/AArch64 Testsuite] Add basic fp16 tests
* gcc.target/aarch64/fp16/fp16.exp: New.
	* gcc.target/aarch64/fp16/f16_convs_1.c: New.
	* gcc.target/aarch64/fp16/f16_convs_2.c: New.

From-SVN: r226350
2015-07-29 13:28:54 +00:00
Jonathan Wakely
ef20ab5e01 * testsuite/24_iterators/container_access.cc: New.
From-SVN: r226349
2015-07-29 13:55:58 +01:00
Ville Voutilainen
a460d06d16 range_access.h: Change class to typename in every template.
2015-07-29  Ville Voutilainen  <ville.voutilainen@gmail.com>

	* include/bits/range_access.h: Change class to typename in every
	template.
	(size, empty, data): New functions from N4280.
	* testsuite/24_iterators/container_access.cc: New.

From-SVN: r226348
2015-07-29 13:41:32 +01:00
Ville Voutilainen
1fa9ba224e re PR libstdc++/60970 (Support std::hash with enum types (LWG 2148))
2015-07-29  Ville Voutilainen  <ville.voutilainen@gmail.com>

	PR libstdc++/60970
	* include/bits/functional_hash.h (__hash_enum): New.
	(hash): Derive from __hash_enum.
	* testsuite/20_util/hash/60970.cc: New.

From-SVN: r226347
2015-07-29 13:41:23 +01:00
Alan Lawrence
c2ec330c9a [AArch64] Add basic FP16 support
gcc/:

	* config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
	(aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.

	* config/aarch64/aarch64-modes.def: Add HFmode.

	* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
	__ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.

	* config/aarch64/aarch64.c (aarch64_init_libfuncs,
	aarch64_promoted_type): New.

	(aarch64_float_const_representable_p): Disable HFmode.
	(aarch64_mangle_type): Mangle half-precision floats to "Dh".
	(TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
	(TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.

	* config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
	(movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.

	* config/aarch64/iterators.md (GPF_F16): New.

gcc/testsuite/:

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

From-SVN: r226346
2015-07-29 12:27:05 +00:00
Richard Biener
da571fdab9 match.pd: Merge address comparison patterns and make them handle some more cases.
2015-07-29  Richard Biener  <rguenther@suse.de>

	* match.pd: Merge address comparison patterns and make them
	handle some more cases.

From-SVN: r226345
2015-07-29 12:14:08 +00:00
Richard Biener
c56f494f74 genmatch.c (c_expr::gen_transform): Error on unknown captures.
2015-07-29  Richard Biener  <rguenther@suse.de>

	* genmatch.c (c_expr::gen_transform): Error on unknown captures.
	(parser::parse_capture): Add bool argument on whether to reject
	unknown captures.
	(parser::parse_expr): Adjust.
	(parser::parse_op): Likewise.
	(parser::parse_pattern): Likewise.

From-SVN: r226344
2015-07-29 12:06:14 +00:00
Richard Biener
89a79e9629 gimple-fold.c (has_use_on_stmt): New function.
2015-07-29  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (has_use_on_stmt): New function.
	(replace_stmt_with_simplification): Use it to allow
	abnormals originally referenced in the stmt.
	(fold_stmt_1): Canonicalize operand order.

From-SVN: r226339
2015-07-29 07:48:10 +00:00
Markus Trippelsdorf
97d8f80175 Use fast unwinder for PowerPC
2015-07-29  Markus Trippelsdorf  <markus@trippelsdorf.de>

	PR sanitizer/63927
	* sanitizer_common/sanitizer_stacktrace.h: Use fast unwinder
	for PowerPC.

From-SVN: r226338
2015-07-29 06:32:09 +00:00
Tim Shen
f9ce3c1639 re PR libstdc++/67015 ("^[a-z0-9][a-z0-9-]*$", std::regex::extended is miscompiled)
PR libstdc++/67015
	* include/bits/regex_compiler.h (_Compiler<>::_M_expression_term,
	_BracketMatcher<>::_M_add_collating_element): Change signature
	to make checking the and of bracket expression easier.
	* include/bits/regex_compiler.tcc (_Compiler<>::_M_expression_term):
	Treat '-' as a valid literal if it's at the end of bracket expression.
	* testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc:
	New testcases.

From-SVN: r226336
2015-07-29 03:45:35 +00:00
Bill Schmidt
3d61d87585 re PR sanitizer/63927 (AddressSanitizer painfully slow on ppc64)
2015-07-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR sanitizer/63927
	* sanitizer_common/sanitizer_stacktrace.cc
	(BufferedStackTrace::FastUnwindStack): Fix code for PowerPC to
	find the link register at an offset of 16 from the base of the
	caller's stack frame.

From-SVN: r226335
2015-07-29 03:33:10 +00:00
GCC Administrator
c73858e982 Daily bump.
From-SVN: r226334
2015-07-29 00:16:12 +00:00
David Sherwood
1c0e448f4b arm.c (neon_element_bits, [...]): Call GET_MODE_INNER unconditionally.
gcc/
2015-07-28  David Sherwood  <david.sherwood@arm.com>

	* config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
	GET_MODE_INNER unconditionally.
	* config/spu/spu.c (arith_immediate_p): Likewise.
	* config/i386/i386.c (ix86_build_signbit_mask): Likewise.
	* expmed.c (synth_mult): Remove check for VOIDmode result from
	GET_MODE_INNER.
	(expand_mult_const): Likewise.
	* fold-const.c (fold_binary_loc): Replace call to element_precision
	with call to GET_MODE_PRECISION.
	* genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
	m->name.
	(emit_mode_inner): Likewise.
	* lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
	result check.
	* machmode.h (GET_MODE_UNIT_SIZE): Simplify.
	(GET_MODE_UNIT_PRECISION): Likewise.
	* rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
	* simplify-rtx.c (simplify_immed_subreg): Likewise.
	* stor-layout.c (bitwise_type_for_mode): Update assert.
	(element_precision): Remove.

From-SVN: r226328
2015-07-28 20:31:17 +00:00
Richard Sandiford
726858e309 target-insns.def (reload_load_address): New targetm instruction pattern.
gcc/
	* target-insns.def (reload_load_address): New targetm instruction
	pattern.
	* reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.

From-SVN: r226326
2015-07-28 20:06:57 +00:00
Richard Sandiford
3d00045080 target-insns.def (atomic_test_and_set): New targetm instruction pattern.
gcc/
	* target-insns.def (atomic_test_and_set): New targetm instruction
	pattern.
	* optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
	HAVE_*/gen_* interface.

From-SVN: r226325
2015-07-28 20:03:22 +00:00
Richard Sandiford
2a870875df target-insns.def (can_extend, ptr_extend): New targetm instruction patterns.
gcc/
	* target-insns.def (can_extend, ptr_extend): New targetm instruction
	patterns.
	* optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
	* simplify-rtx.c (simplify_unary_operation_1): Likewise.
	* emit-rtl.c (set_reg_attrs_from_value): Likewise.
	* rtlanal.c (nonzero_bits1): Likewise.
	(num_sign_bit_copies1): Likewise.

From-SVN: r226324
2015-07-28 19:59:40 +00:00
Richard Sandiford
3b0b0013f6 target-insns.def (eh_return): New targetm instruction pattern.
gcc/
	* target-insns.def (eh_return): New targetm instruction pattern.
	* except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
	interface.
	* function.c (thread_prologue_and_epilogue_insns): Remove
	preprocessor condition.

From-SVN: r226322
2015-07-28 19:54:06 +00:00
Richard Sandiford
902628047c target-insns.def (indirect_jump): New targetm instruction pattern.
gcc/
	* target-insns.def (indirect_jump): New targetm instruction pattern.
	* optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
	interface.

From-SVN: r226321
2015-07-28 19:50:22 +00:00
Richard Sandiford
c1ddc8e9d8 fr30.md (indirect_jump): Use pmode_register_operand instead of nonimmediate_operand.
gcc/
	* config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
	instead of nonimmediate_operand.  Remove C condiition.

From-SVN: r226320
2015-07-28 19:34:12 +00:00
Eric Gallager
cfce04880a check.tpl: Ignore .DS_Store directories.
2015-07-28  Eric Gallager  <egall@gwmail.gwu.edu>

	* check.tpl: Ignore .DS_Store directories.

From-SVN: r226317
2015-07-28 18:11:22 +00:00
Richard Biener
68aba1f6a8 match.pd: Add more simplification of address comparisons.
2015-07-28  Richard Biener  <rguenther@suse.de>

	* match.pd: Add more simplification of address comparisons.

From-SVN: r226312
2015-07-28 11:53:37 +00:00
Richard Biener
9bc22d19f1 match.pd: Re-order two cases in comparison with max/min value simplification to make it...
2015-07-28  Richard Biener  <rguenther@suse.de>

	* match.pd: Re-order two cases in comparison with max/min
	value simplification to make it apply for bools.

From-SVN: r226311
2015-07-28 11:52:55 +00:00
Kyrylo Tkachov
e47c403137 [AArch64] Properly handle simple arith+extend ops in rtx costs
* config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
	Handle simple SIGN_EXTEND or ZERO_EXTEND.
	(aarch64_rtx_costs): Properly strip extend or extract before
	passing down to rtx costs again.

From-SVN: r226309
2015-07-28 11:00:07 +00:00
Paolo Carlini
4b1cbcee3e call.c (build_op_delete_call, [...]): Use Use DECL_SOURCE_LOCATION and "%qD" in inform and pedwarn instead of "%q+D".
2015-07-28  Paolo Carlini  <paolo.carlini@oracle.com>

	* call.c (build_op_delete_call, convert_like_real, build_over_call):
	Use Use DECL_SOURCE_LOCATION and "%qD" in inform and pedwarn instead
	of "%q+D".
	* constexpr.c (explain_invalid_constexpr_fn): Likewise.
	* decl.c (duplicate_decls): Likewise for warning/warning_at.
	* except.c (maybe_noexcept_warning): Likewise.
	* friend.c (make_friend_class): Likewise for inform.
	* mangle.c (mangle_decl): Likewise for warning/warning_at.
	* method.c (process_subob_fn, walk_field_subobs,
	maybe_explain_implicit_delete): Likewise for inform.
	* parser.c (cp_parser_lambda_introducer): Likewise.
	* pt.c (check_specialization_namespace,
	maybe_process_partial_specialization): Likewise for permerror.
	(redeclare_class_template): Likewise for inform_n.
	(coerce_template_parms, tsubst_copy_and_build): Likewise for inform.
	* search.c (check_final_overrider): Likewise.
	* semantics.c (process_outer_var_ref): Likewise.

From-SVN: r226308
2015-07-28 08:53:57 +00:00
Nick Clifton
f87a37c689 rl78.c (rl78_addsi3_internal): New function.
* config/rl78/rl78.c (rl78_addsi3_internal): New function.
	Optimizes the case where -mes0 is active and a constant symbolic
	address is used.
	* config/rl78/rl78-protos.h: Prototype the new function.
	* config/rl78/rl78.md (addsi3_internal_real): Call new function.

From-SVN: r226306
2015-07-28 08:09:09 +00:00
Tom de Vries
12efb1d75f Handle double reduction in parloops
2015-07-28  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (reduc_stmt_res): New function.
	(initialize_reductions, add_field_for_reduction)
	(create_phi_for_local_result, create_loads_for_reductions)
	(create_stores_for_reduction, build_new_reduction): Handle case that
	reduc_stmt is a phi.
	(gather_scalar_reductions): Allow double_reduc reductions.

	* gcc.dg/autopar/uns-outer-4.c: Remove xfail on scan for parallelizing
	outer loop.

	* testsuite/libgomp.c/uns-outer-4.c: New test.

From-SVN: r226300
2015-07-28 07:54:04 +00:00
Richard Biener
70b47b6199 fold-const.c (fold_comparison): Remove equality folding of decl addresses ...
2015-07-28  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_comparison): Remove equality folding
	of decl addresses ...
	* match.pd: ... here and merge with existing pattern.

From-SVN: r226299
2015-07-28 07:20:33 +00:00
Thomas Preud'homme
68512012b7 re PR tree-optimization/66828 (gcc/tree-ssa-math-opts.c:2182:38: runtime error: left shift of 72057594037927936 by 8 places cannot be represented in type 'long int')
2015-07-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    PR tree-optimization/66828
    * tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
    from int64_t to uint64_t.

From-SVN: r226298
2015-07-28 06:54:50 +00:00
Dominik Vogt
85d91a6bd4 Honour DriverOnly for enum values in error messages
/gcc/ChangeLog

	* opts-common.c (read_cmdline_option): List DriverOnly enum values as
	valid only in the error message of the driver, not in the messages of
	the language compilers.

From-SVN: r226297
2015-07-28 05:51:01 +00:00
Ben Elliston
d5e9bac57f * config.sub, config.guess: Import from upstream.
From-SVN: r226296
2015-07-28 10:57:40 +10:00
GCC Administrator
5cd5f1ca19 Daily bump.
From-SVN: r226294
2015-07-28 00:16:11 +00:00
Luis Felipe Strano Moraes
463084746c c-decl.c (get_parm_info): Remove static var.
gcc/c/ChangeLog

2015-07-28  Luis Felipe Strano Moraes  <luis.strano@gmail.com>
	    Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-decl.c (get_parm_info): Remove static var. Update warning
	message.

gcc/testsuite/ChangeLog

2015-07-28  Luis Felipe Strano Moraes  <luis.strano@gmail.com>
	    Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* gcc.dg/parm-incomplete-1.c: Update.
	* gcc.dg/pr18809-1.c: Update.
	* gcc.dg/pr27953.c: Update.
	* gcc.dg/vla-11.c: Update.

Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>

From-SVN: r226274
2015-07-27 22:26:34 +00:00
Marek Polacek
160654a0b8 * c-c++-common/Wtautological-compare-2.c: Remove unused line.
From-SVN: r226271
2015-07-27 20:51:48 +00:00
Tom de Vries
1e6a7b01cc Simplify gather_scalar_reductions
2015-07-27  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (gather_scalar_reductions): Simplify function
	structure.

From-SVN: r226270
2015-07-27 20:05:19 +00:00
Tom de Vries
383ec9fd77 Update outer-4.c and uns-outer-4.c
2015-07-27  Tom de Vries  <tom@codesourcery.com>

	* gcc.dg/autopar/outer-4.c (parloop): Remove superfluous noinline
	attribute.  Update comment.
	(main): Remove.
	Add scan for not parallelizing inner loop.
	* gcc.dg/autopar/uns-outer-4.c (parloop): Remove superfluous noinline
	attribute.
	(main): Remove.

From-SVN: r226269
2015-07-27 20:05:09 +00:00
Marek Polacek
28ee8b98ea * ipa-devirt.c (types_same_for_odr): Fix typo.
From-SVN: r226266
2015-07-27 19:36:40 +00:00
Marek Polacek
f2afe6dd93 re PR bootstrap/67030 (ARM bootstrap failure due to [-Werror=tautological-compare])
PR bootstrap/67030
	* c-common.c (warn_tautological_cmp): Don't warn for macro expansion.

	* c-c++-common/Wtautological-compare-2.c: New test.

From-SVN: r226264
2015-07-27 19:09:27 +00:00
Jason Merrill
cca444fb00 constexpr.c (cxx_eval_call_expression): Don't add this call to the hash table if !depth_ok.
* constexpr.c (cxx_eval_call_expression): Don't add this call to
	the hash table if !depth_ok.

From-SVN: r226256
2015-07-27 12:57:21 -04:00
Jason Merrill
ad497dbb3e re PR lto/66468 (ICE in in check_die, at dwarf2out.c:5719)
PR debug/66468
	* dwarf2out.c (gen_inlined_subroutine_die): Check
	cgraph_function_possibly_inlined_p.

From-SVN: r226255
2015-07-27 12:57:15 -04:00
H.J. Lu
b5afeda1ed Add more tests for PR target/66232
PR target/66232
	* gcc.target/i386/pr66232-6.c: New tests.
	* gcc.target/i386/pr66232-7.c: Likewise.
	* gcc.target/i386/pr66232-8.c: Likewise.
	* gcc.target/i386/pr66232-9.c: Likewise.

From-SVN: r226254
2015-07-27 09:24:35 -07:00
Wilco Dijkstra
ad7b853a10 [PATCH][AArch64] Improve spill code - swap order in shr patterns
gcc/

	* gcc/config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
	Place integer variant first.
	(aarch64_ashr_sisd_or_int_<mode>3): Likewise.

From-SVN: r226253
2015-07-27 16:18:36 +00:00
Alan Lawrence
6d60b856e4 [ARM] PR/63870 Add a __builtin_lane_check
* config/arm/arm-builtins.c (enum arm_builtins):
        Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
        (ARM_BUILTIN_NEON_BASE): Rename macro to....
        (ARM_BUILTIN_NEON_PATTERN_START): ...this.
        (arm_init_neon_builtins): Register __builtin_arm_lane_check.
        (arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.

From-SVN: r226252
2015-07-27 15:55:23 +00:00
Alan Lawrence
eaa80f6464 [ARM] PR/63870 Add qualifier to check lane bounds in expand
* config/arm/arm-builtins.c (enum arm_type_qualifiers):
	Add qualifier_lane_index.
	(arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
	(arm_getlane_qualifiers): Use qualifier_lane_index.
	(arm_lanemac_qualifiers): Rename to...
	(arm_mac_n_qualifiers): ...this.
	(LANEMAC_QUALIFIERS): Rename to...
	(MAC_N_QUALIFIERS): ...this.
	(arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
	(arm_setlane_qualifiers): Use qualifier_lane_index.
	(arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
	(enum builtin_arg): Add NEON_ARG_LANE_INDEX.
	(arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
	(arm_expand_neon_builtin): Handle qualifier_lane_index.

	* config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
	* config/arm/arm.c (bounds_check): Likewise, improve error message.
	(neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
	* config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
	vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
	vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
	vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
	(vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
	qualifiers to TERNOP_IMM.
	(vdup_lane): Change qualifiers to GETLANE.
	(vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
	vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
	(vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
	vqdmlsl_n): Change qualifiers to MAC_N.

	* config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
	neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
	neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
	neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
	neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
	neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
	neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
	neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
	neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
	Remove call to neon_lane_bounds.

From-SVN: r226251
2015-07-27 15:44:26 +00:00
Wilco Dijkstra
d99dacc948 [PATCH][AArch64] Improve spill code - swap order in shl pattern
gcc/

	* config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
	Place integer variant first.

From-SVN: r226247
2015-07-27 15:02:55 +00:00
Thomas Schwinge
02bcdc56ee Fix logic error in Fortran OpenACC parsing
gcc/fortran/
	* parse.c (parse_oacc_structured_block): Fix logic error.
	Reported by Mikael Morin <mikael.morin@sfr.fr>.

From-SVN: r226246
2015-07-27 16:26:41 +02:00
Matthew Wahab
39c1254139 arm-arches.def: Add "armv6kz".
2015-07-27  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
	and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
	* config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
	for armv6kz targets.
	* config/arm/arm-cores.def: Replace 6ZK with 6KZ.
	* config/arm/arm-protos.h (FL_ARCH6KZ): New.
	(FL_FOR_ARCH6ZK): Remove.
	(FL_FOR_ARCH6KZ): New.
	(arm_arch6zk): New declaration.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/arm.c (arm_arch6kz): New.
	(arm_option_override): Set arm_arch6kz.
	* config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
	* config/arm/driver-arm.c: Add comment to "armv6zk" entry.
        * doc/invoke.texi: Replace "armv6zk" with "armv6kz".

From-SVN: r226243
2015-07-27 13:07:09 +00:00
Marek Polacek
05b28fd6f9 re PR c++/66555 (Fails to warn for if (j == 0 && i == i))
PR c++/66555
	PR c/54979
	* c-common.c (find_array_ref_with_const_idx_r): New function.
	(warn_tautological_cmp): New function.
	* c-common.h (warn_tautological_cmp): Declare.
	* c.opt (Wtautological-compare): New option.

	* c-typeck.c (parser_build_binary_op): Call warn_tautological_cmp.

	* call.c (build_new_op_1): Call warn_tautological_cmp.
	* pt.c (tsubst_copy_and_build): Use sentinel to suppress tautological
	compare warnings.

	* doc/invoke.texi: Document -Wtautological-compare.

	* c-c++-common/Wtautological-compare-1.c: New test.

From-SVN: r226242
2015-07-27 12:40:45 +00:00
Richard Biener
0fd357f27d genmatch.c (decision_tree::gen_gimple): Split out large subtrees into separate functions.
2015-07-27  Richard Biener  <rguenther@suse.de>

	* genmatch.c (decision_tree::gen_gimple): Split out large
	subtrees into separate functions.
	(decision_tree::gen_generic): Likewise.

From-SVN: r226241
2015-07-27 10:59:18 +00:00
GCC Administrator
26b4522dd4 Daily bump.
From-SVN: r226240
2015-07-27 00:16:14 +00:00
Patrick Palka
11f2c78ae8 Fix PR c++/18969 (invalid return statement diagnosed too late)
gcc/cp/ChangeLog:

	PR c++/18969
	* typeck.c (check_return_expr): Also do the basic return-value
	validity checking if processing_template_decl and yet types are
	not dependent.  Remove obsolete code.

gcc/testsuite/ChangeLog:

	PR c++/18969
	* g++.dg/template/pr18969.C: New test.
	* g++.dg/template/pr18969-2.C: New test.
	* g++.old-deja/g++.jason/overload.C: Remove return value in
	template function returning void.

From-SVN: r226236
2015-07-26 17:04:31 +00:00