1. 29 Nov, 2017 11 commits
  2. 28 Nov, 2017 29 commits
    • Fix some incorrectly formatted ChangeLog entries. · 5ded3aec
      From-SVN: r255220
      Jim Wilson committed
    • Handle very long lines when printing fix-it hints · 64ea27f0
      When fixing PR c/82050 I noticed a bug in how we print fix-it hints
      for very long lines: we weren't taking into account the x-offset for
      the line when printing the fix-it hint.
      
      This could lead to output where instead of printing:
      
      foo.c:14:3944: error: etc
        = foo.field
              ^~~~~
              replacement
      
      where the lines have been offset to start printing at about column 3900,
      the "replacement" line was erroneously *not* offset, and was thus
      prefixed by thousands of spaces, leading to large whitespace gaps in
      the output, and the replacement failing to line up with the source to be
      replaced.
      
      Fixed thusly.
      
      gcc/ChangeLog:
      	* diagnostic-show-locus.c (layout::print_trailing_fixits): Handle
      	m_x_offset.
      	(layout::move_to_column): Likewise.
      
      gcc/testsuite/ChangeLog:
      	* gcc.dg/plugin/diagnostic-test-show-locus-bw.c
      	(test_very_wide_line): Update expected output to include a
      	fix-it hint.
      	* gcc.dg/plugin/diagnostic-test-show-locus-color.c
      	(test_very_wide_line): Likewise.
      	* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c
      	(test_show_locus): Add a fix-it hint to "test_very_wide_line".
      
      From-SVN: r255219
      David Malcolm committed
    • re PR sanitizer/81275 (-fsanitize=thread produce incorrect -Wreturn-type warning) · 1a2e9708
      	PR sanitizer/81275
      	* cp-tree.h (SWITCH_STMT_ALL_CASES_P): Define.
      	(SWITCH_STMT_NO_BREAK_P): Define.
      	(note_break_stmt, note_iteration_stmt_body_start,
      	note_iteration_stmt_body_end): Declare.
      	* decl.c (struct cp_switch): Add has_default_p, break_stmt_seen_p
      	and in_loop_body_p fields. 
      	(push_switch): Clear them.
      	(pop_switch): Set SWITCH_STMT_CANNOT_FALLTHRU_P if has_default_p
      	and !break_stmt_seen_p.  Assert in_loop_body_p is false.
      	(note_break_stmt, note_iteration_stmt_body_start,
      	note_iteration_stmt_body_end): New functions.
      	(finish_case_label): Set has_default_p when both low and high
      	are NULL_TREE.
      	* parser.c (cp_parser_iteration_statement): Use
      	note_iteration_stmt_body_start and note_iteration_stmt_body_end
      	around parsing iteration body.
      	* pt.c (tsubst_expr): Likewise.
      	* cp-objcp-common.c (cxx_block_may_fallthru): Return false for
      	SWITCH_STMT which contains no BREAK_STMTs, contains a default:
      	CASE_LABEL_EXPR and where SWITCH_STMT_BODY isn't empty and
      	can't fallthru.
      	* semantics.c (finish_break_stmt): Call note_break_stmt.
      	* cp-gimplify.c (genericize_switch_stmt): Copy SWITCH_STMT_ALL_CASES_P
      	bit to SWITCH_ALL_CASES_P.  Assert that if SWITCH_STMT_NO_BREAK_P then
      	the break label is not TREE_USED.
      
      	* g++.dg/warn/pr81275-1.C: New test.
      	* g++.dg/warn/pr81275-2.C: New test.
      	* g++.dg/warn/pr81275-3.C: New test.
      	* c-c++-common/tsan/pr81275.c: Skip for C++ and -O2.
      
      From-SVN: r255218
      Jakub Jelinek committed
    • re PR sanitizer/81275 (-fsanitize=thread produce incorrect -Wreturn-type warning) · 058f0b9e
      	PR sanitizer/81275
      	* tree.c (block_may_fallthru): Return false if SWITCH_ALL_CASES_P
      	is set on SWITCH_EXPR and !block_may_fallthru (SWITCH_BODY ()).
      c/
      	* c-typeck.c (c_finish_case): Set SWITCH_ALL_CASES_P if
      	c_switch_covers_all_cases_p returns true.
      c-family/
      	* c-common.c (c_switch_covers_all_cases_p_1,
      	c_switch_covers_all_cases_p): New functions.
      	* c-common.h (c_switch_covers_all_cases_p): Declare.
      testsuite/
      	* c-c++-common/tsan/pr81275.c: New test.
      
      From-SVN: r255217
      Jakub Jelinek committed
    • PR 53796 Improve INQUIRE(RECL=...) handling · 67c24a8b
      The current F2018 draft (N2137) specifies behavior of the RECL=
      specifier in the INQUIRE statement, where it previously was left as
      undefined. Namely:
      
      - If the unit is not connected, RECL= should be given the value -1.
      - If the unit is connected with stream access, RECL= should be given
        the value -2.
      
      Further, as PR 53796 describes, the handling of RECL= is poor in other
      ways as well. When the recl is set to the maximum possible
      (GFC_INTEGER_8_HUGE / LLONG_MAX), which it does by default except for
      preconnected units, and when INQUIRE(RECL=) is used with a 4 byte
      integer, the value is truncated and the 4 byte value is thus
      -1. Fixing this to generate an error is a lot of work, as currently
      the truncation is done by the frontend, the library sees only an 8
      byte value with no indication that the frontend is going to copy it to
      a 4 byte one. Instead, this patch does a bit twiddling trick such that
      the truncated 4 byte value is GFC_INTEGER_4_HUGE while still being
      0.99999999 * GFC_INTEGER_8_HUGE which is large enough for all
      practical purposes.
      
      Finally, the patch removes GFORTRAN_DEFAULT_RECL which was used only
      for preconnected units, and instead uses the same approach as describe
      above.
      
      Regtested on x86_64-pc-linux-gnu, Ok for trunk.
      
      gcc/fortran/ChangeLog:
      
      2017-11-28  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/53796
      	* gfortran.texi: Remove mentions of GFORTRAN_DEFAULT_RECL.
      
      libgfortran/ChangeLog:
      
      2017-11-28  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/53796
      	* io/inquire.c (inquire_via_unit): Set recl to -1 for unconnected
      	units.
      	* io/io.h (default_recl): New variable.
      	* io/open.c (new_unit): Set recl to default_recl for sequential,
      	-2 for stream access.
      	* io/transfer.c (read_block_form): Test against default_recl
      	instead of DEFAULT_RECL.
      	(write_block): Likewise.
      	* io/unit.c (init_units): Calculate max_offset, default_recl.
      	* libgfortran.h (DEFAULT_RECL): Remove.
      	* runtime/environ.c: Remove GFORTRAN_DEFAULT_RECL.
      
      gcc/testsuite/ChangeLog:
      
      2017-11-28  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/53796
      	* gfortran.dg/inquire_recl_f2018.f90: New test.
      
      From-SVN: r255215
      Janne Blomqvist committed
    • Reject fix-it hints for various awkward boundary cases (PR c/82050) · 6df8934f
      PR c/82050 reports a failed assertion deep within diagnostic_show_locus's
      code for printing fix-it hints.
      
      The root cause is a fix-it hint suggesting a textual replacement,
      where the affected column numbers straddle the LINE_MAP_MAX_COLUMN_NUMBER
      boundary, so that the start of the range has a column number, but the
      end of the range doesn't.
      
      The fix is to verify that the column numbers are sane when adding fix-it
      hints to a rich_location, rejecting fix-it hints where they are not.
      
      libcpp/ChangeLog:
      	PR c/82050
      	* include/line-map.h (LINE_MAP_MAX_COLUMN_NUMBER): Move here.
      	* line-map.c (LINE_MAP_MAX_COLUMN_NUMBER): ...from here.
      	(rich_location::maybe_add_fixit): Reject fix-it hints in which
      	the start column exceeds the next column.
      
      From-SVN: r255214
      David Malcolm committed
    • [PR 82808] Use proper result types for arithmetic jump functions · e5cf5e11
      2017-11-28  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
      	    Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/82808
      	* tree.h (expr_type_first_operand_type_p): Declare
      	* tree.c (expr_type_first_operand_type_p): New function.
      	* ipa-prop.h (ipa_get_type): Allow i to be out of bounds.
      	(ipa_value_from_jfunc): Adjust declaration.
      	* ipa-cp.c (ipa_get_jf_pass_through_result): New parameter RES_TYPE.
      	Use it as result type for arithmetics, unless it is NULL in which case
      	be more conservative.
      	(ipa_value_from_jfunc): New parameter PARM_TYPE, pass it to
      	ipa_get_jf_pass_through_result.
      	(propagate_vals_across_pass_through): Likewise.
      	(propagate_scalar_across_jump_function): New parameter PARM_TYPE, pass
      	is to propagate_vals_across_pass_through.
      	(propagate_constants_across_call): Pass PARM_TYPE to
      	propagate_scalar_across_jump_function.
      	(find_more_scalar_values_for_callers_subset): Pass parameter type to
      	ipa_value_from_jfunc.
      	(cgraph_edge_brings_all_scalars_for_node): Likewise.
      	* ipa-fnsummary.c (evaluate_properties_for_edge): Renamed parms_info
      	to caller_parms_info, pass parameter type to ipa_value_from_jfunc.
      	* ipa-prop.c (try_make_edge_direct_simple_call): New parameter
      	target_type, pass it to ipa_value_from_jfunc.
      	(update_indirect_edges_after_inlining): Pass parameter type to
      	try_make_edge_direct_simple_call.
      
      testsuite/
      	* gcc.dg/ipa/pr82808.c: New test.
      
      
      Co-Authored-By: Martin Jambor <mjambor@suse.cz>
      
      From-SVN: r255212
      Prathamesh Kulkarni committed
    • * gimple-ssa-evrp-analyze.c · 5e4a80e8
      	(evrp_range_analyzer::record_ranges_from_phis): Only use SCEV to
      	refine ranges if scev_initialized_p returns true.
      	* vr-values.c (vr_values::extract_range_from_phi_node): Likewise.
      
      From-SVN: r255211
      Jeff Law committed
    • * g++.dg/cpp0x/fntmpdefarg2a.C: Move expected warning. · 19686044
      From-SVN: r255210
      Jason Merrill committed
    • Enable VBMI2 support [5/7] · 04d1ea7a
      gcc/
      	* config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16,
      	_mm512_mask_shrdi_epi16, _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32,
      	_mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, _mm512_shrdi_epi64,
      	_mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64): New intrinsics.
      	* config/i386/avx512vbmi2vlintrin.h (_mm256_shrdi_epi16,
      	_mm256_mask_shrdi_epi16, _mm256_maskz_shrdi_epi16,
      	_mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32, _mm256_shrdi_epi32,
      	_mm256_mask_shrdi_epi64, _mm256_maskz_shrdi_epi64, _mm256_shrdi_epi64,
      	_mm_mask_shrdi_epi16, _mm_maskz_shrdi_epi16, _mm_shrdi_epi16,
      	_mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, _mm_shrdi_epi32,
      	_mm_mask_shrdi_epi64, _mm_maskz_shrdi_epi64, _mm_shrdi_epi64): Ditto.
      	* config/i386/i386-builtin.def (__builtin_ia32_vpshrd_v32hi,
      	__builtin_ia32_vpshrd_v32hi_mask, __builtin_ia32_vpshrd_v16hi,
      	__builtin_ia32_vpshrd_v16hi_mask, __builtin_ia32_vpshrd_v8hi,
      	__builtin_ia32_vpshrd_v8hi_mask, __builtin_ia32_vpshrd_v16si,
      	__builtin_ia32_vpshrd_v16si_mask, __builtin_ia32_vpshrd_v8si,
      	__builtin_ia32_vpshrd_v8si_mask, __builtin_ia32_vpshrd_v4si,
      	__builtin_ia32_vpshrd_v4si_mask, __builtin_ia32_vpshrd_v8di,
      	__builtin_ia32_vpshrd_v8di_mask, __builtin_ia32_vpshrd_v4di,
      	__builtin_ia32_vpshrd_v4di_mask, __builtin_ia32_vpshrd_v2di,
      	__builtin_ia32_vpshrd_v2di_mask): New builtins.
      	* config/i386/sse.md (vpshrd_<mode><mask_name>): New pattern.
      
      gcc/testsuite/
      	* gcc.target/i386/avx-1.c: Handle new intrinsics.
      	* gcc.target/i386/sse-13.c: Ditto.
      	* gcc.target/i386/sse-23.c: Ditto.
      	* gcc.target/i386/avx512f-vpshrdd-2.c: New.
      	* gcc.target/i386/avx512f-vpshrdq-2.c: Ditto.
      	* gcc.target/i386/avx512vl-vpshrd-1.c: Ditto.
      	* gcc.target/i386/avx512vl-vpshrdd-2.c: Ditto.
      	* gcc.target/i386/avx512vl-vpshrdq-2.c: Ditto.
      
      From-SVN: r255209
      Julia Koval committed
    • Enable VBMI2 support [4/7] · 2794892a
      gcc/
      	config/i386/avx512vbmi2intrin.h (_mm512_shldi_epi16,
      	_mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16, _mm512_shldi_epi32,
      	_mm512_mask_shldi_epi32, _mm512_maskz_shldi_epi32, _mm512_shldi_epi64,
      	_mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): New intrinsics.
      	config/i386/avx512vbmi2vlintrin.h (_mm256_shldi_epi16,
      	_mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16,
      	_mm256_mask_shldi_epi32, _mm256_maskz_shldi_epi32, _mm256_shldi_epi32,
      	_mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64, _mm256_shldi_epi64,
      	_mm_mask_shldi_epi16, _mm_maskz_shldi_epi16, _mm_shldi_epi16,
      	_mm_mask_shldi_epi32, _mm_maskz_shldi_epi32, _mm_shldi_epi32,
      	_mm_mask_shldi_epi64, _mm_maskz_shldi_epi64, _mm_shldi_epi64): Ditto.
      	config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_INT,
      	V32HI_FTYPE_V32HI_V32HI_INT_V32HI_INT, V16SI_FTYPE_V16SI_V16SI_INT,
      	V16SI_FTYPE_V16SI_V16SI_INT_V16SI_INT,
      	V8DI_FTYPE_V8DI_V8DI_INT_V8DI_INT, V8SI_FTYPE_V8SI_V8SI_INT_V8SI_INT,
      	V16HI_FTYPE_V16HI_V16HI_INT_V16HI_INT,
      	V4DI_FTYPE_V4DI_V4DI_INT_V4DI_INT,
      	V8HI_FTYPE_V8HI_V8HI_INT_V8HI_INT,
      	V4SI_FTYPE_V4SI_V4SI_INT_V4SI_INT,
      	V2DI_FTYPE_V2DI_V2DI_INT_V2DI_INT): New types.
      	config/i386/i386-builtin.def (__builtin_ia32_vpshld_v32hi,
      	__builtin_ia32_vpshld_v32hi_mask, __builtin_ia32_vpshld_v16hi,
      	__builtin_ia32_vpshld_v16hi_mask, __builtin_ia32_vpshld_v8hi,
      	__builtin_ia32_vpshld_v8hi_mask, __builtin_ia32_vpshld_v16si,
      	__builtin_ia32_vpshld_v16si_mask, __builtin_ia32_vpshld_v8si,
      	__builtin_ia32_vpshld_v8si_mask, __builtin_ia32_vpshld_v4si,
      	__builtin_ia32_vpshld_v4si_mask, __builtin_ia32_vpshld_v8di,
      	__builtin_ia32_vpshld_v8di_mask, __builtin_ia32_vpshld_v4di,
      	__builtin_ia32_vpshld_v4di_mask, __builtin_ia32_vpshld_v2di,
      	__builtin_ia32_vpshld_v2di_mask): New builtins.
      	config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
      	config/i386/sse.md (vpshld_<mode><mask_name>): New pattern.
      
      gcc/testsuite/
      	gcc.target/i386/avx-1.c: Handle new intrinics.
      	gcc.target/i386/sse-13.c: Ditto.
      	gcc.target/i386/sse-23.c: Ditto.
      	gcc.target/i386/avx512f-vpshld-1.c: New test.
      	gcc.target/i386/avx512f-vpshldd-2.c: Ditto.
      	gcc.target/i386/avx512f-vpshldq-2.c: Ditto.
      	gcc.target/i386/avx512vl-vpshld-1.c: Ditto.
      	gcc.target/i386/avx512vl-vpshldd-2.c: Ditto.
      	gcc.target/i386/avx512vl-vpshldq-2.c: Ditto.
      
      From-SVN: r255208
      Julia Koval committed
    • re PR fortran/83021 (gfortran segfault in polymorphic assignment) · a964d4b1
      2017-11-28  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/83021
      	* resolve.c (resolve_component): Only escape for use assciated
      	vtypes if the current namespace has no proc_name and is most
      	particularly block data.
      
      From-SVN: r255202
      Paul Thomas committed
    • re PR tree-optimization/80776 (-Wformat-overflow false positive for %d on… · 4aa458f2
      re PR tree-optimization/80776 (-Wformat-overflow false positive for %d on integer bounded by __builtin_unreachable)
      
      2017-11-28  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/80776
      	* gimple-ssa-evrp-analyze.h (evrp_range_analyzer::set_ssa_range_info):
      	Declare.
      	* gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
      	New function.
      	(evrp_range_analyzer::record_ranges_from_incoming_edges):
      	If the incoming edge is an effective fallthru because the other
      	edge only reaches a __builtin_unreachable () then record ranges
      	derived from the controlling condition in SSA info.
      	(evrp_range_analyzer::record_ranges_from_phis): Use set_ssa_range_info.
      	(evrp_range_analyzer::record_ranges_from_stmt): Likewise.
      
      	* gcc.dg/pr80776-1.c: New testcase.
      	* gcc.dg/pr80776-2.c: Likewise.
      
      From-SVN: r255201
      Richard Biener committed
    • Makefile.in (SELFTEST_FLAGS): Use nul instead of /dev/null on mingw build hosts. · 73ff3db2
      2017-11-28  Olivier Hainque  <hainque@adacore.com>
      
      	* Makefile.in (SELFTEST_FLAGS): Use nul instead of /dev/null
      	on mingw build hosts.
      
      From-SVN: r255200
      Olivier Hainque committed
    • Add std::to_address for C++2a (P0653R2) · 61cd19e6
      2017-11-28  Glen Joseph Fernandes  <glenjofe@gmail.com>
      
      	* include/bits/ptr_traits.h (to_address): Implement to_address.
      	* testsuite/20_util/to_address/1.cc: New test.
      
      From-SVN: r255199
      Glen Joseph Fernandes committed
    • re PR debug/81307 (g++.dg/debug/debug9.C -gstabs FAILs) · 5a198ba9
      	PR debug/81307
      	* dbxout.c (dbx_block_with_cold_children): Fix function comment.
      
      From-SVN: r255198
      Jakub Jelinek committed
    • re PR tree-optimization/83141 (SRA and memcpy folding interact badly generating wrong-code) · d7257171
      2017-11-28  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/83141
      	* gimple-fold.c (gimple_fold_builtin_memory_op): For aggregate
      	copies generated from memcpy use a character array as reference
      	type.
      
      From-SVN: r255197
      Richard Biener committed
    • re PR c/83117 (FAIL: gcc.target/x86_64/abi/ms-sysv/ms-sysv.c (test for excess errors)) · fa69d74b
      	PR c/83117
      	* gcc.target/x86_64/abi/ms-sysv/gen.cc (make_do_tests_decl): Drop
      	const from do_test_{u,v}*.
      
      From-SVN: r255196
      Jakub Jelinek committed
    • Remove Cilk Plus support. · 5e9d6aa4
      	* Makefile.def (target_modules): Remove libcilkrts.
      	* Makefile.in: Ditto.
      	* configure: Ditto.
      	* configure.ac: Ditto.
      
      contrib/
      	* contrib/gcc_update: Ditto.
      
      gcc/
      	* Makefile.in (cilkplus.def, cilk-builtins.def, c-family/cilk.o, 
      	c-family/c-cilkplus.o, c-family/array-notation-common.o,
      	cilk-common.o, cilk.h, cilk-common.c): Remove.
      	* builtin-types.def
      	(BT_FN_INT_PTR_PTR_PTR_FTYPE_BT_INT_BT_PTR_BT_PTR_BT_PTR): Remove.
      	* builtins.c (is_builtin_name): Remove cilkplus condition.
      	(BUILT_IN_CILK_DETACH, BUILT_IN_CILK_POP_FRAME): Remove.
      	* builtins.def (DEF_CILK_BUILTIN_STUB, DEF_CILKPLUS_BUILTIN,
      	cilk-builtins.def, cilkplus.def): Remove.
      	* cif-code.def (CILK_SPAWN): Remove.
      	* cilk-builtins.def: Delete.
      	* cilk-common.c: Ditto.
      	* cilk.h: Ditto.
      	* cilkplus.def: Ditto.
      	* config/darwin.h (fcilkplus): Delete.
      	* cppbuiltin.c: Ditto.
      	* doc/extend.texi: Remove cilkplus doc.
      	* doc/generic.texi: Ditto.
      	* doc/invoke.texi: Ditto.
      	* doc/passes.texi: Ditto.
      	* gcc.c (fcilkplus): Remove.
      	* gengtype.c (cilk.h): Remove.
      	* gimple-pretty-print.c (dump_gimple_omp_for): Remove cilkplus support.
      	* gimple.h (GF_OMP_FOR_KIND_CILKFOR, GF_OMP_FOR_KIND_CILKSIMD): Remove.
      	* gimplify.c (gimplify_return_expr, maybe_fold_stmt,
      	gimplify_call_expr, is_gimple_stmt, gimplify_modify_expr,
      	gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses,
      	gimplify_omp_for, gimplify_expr): Remove cilkplus conditions.
      	* ipa-fnsummary.c (ipa_dump_fn_summary, compute_fn_summary,
      	inline_read_section): Ditto.
      	* ipa-inline-analysis.c (cilk.h): Remove.
      	* ira.c (ira_setup_eliminable_regset): Remove cilkplus support.
      	* lto-wrapper.c (merge_and_complain, append_compiler_options,
      	append_linker_options): Remove condition for fcilkplus.
      	* lto/lto-lang.c (cilk.h): Remove.
      	(lto_init): Remove condition for fcilkplus.
      	* omp-expand.c (expand_cilk_for_call): Delete.
      	(expand_omp_taskreg, expand_omp_for_static_chunk,
      	expand_omp_for): Remove cilkplus
      	conditions.
      	(expand_cilk_for): Delete.
      	* omp-general.c (omp_extract_for_data): Remove cilkplus support.
      	* omp-low.c (scan_sharing_clauses, create_omp_child_function,
      	execute_lower_omp, diagnose_sb_0): Ditto.
      	* omp-simd-clone.c (simd_clone_clauses_extract): Ditto.
      	* tree-core.h (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
      	* tree-nested.c: Ditto.
      	* tree-pretty-print.c (dump_omp_clause): Remove cilkplus support.
      	(dump_generic_node): Ditto.
      	* tree.c (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
      	* tree.def (cilk_simd, cilk_for, cilk_spawn_stmt,
      	cilk_sync_stmt): Delete.
      	* tree.h (CILK_SPAWN_FN, EXPR_CILK_SPAWN): Delete.
      
      gcc/c-family/
      	* array-notation-common.c: Delete.
      	* c-cilkplus.c: Ditto.
      	* c-common.c (_Cilk_spawn, _Cilk_sync, _Cilk_for): Remove.
      	* c-common.def (ARRAY_NOTATION_REF): Remove.
      	* c-common.h (RID_CILK_SPAWN, build_array_notation_expr,
      	build_array_notation_ref, C_ORT_CILK, c_check_cilk_loop,
      	c_validate_cilk_plus_loop, cilkplus_an_parts,
      	cilk_ignorable_spawn_rhs_op,
      	cilk_recognize_spawn): Remove.
      	* c-gimplify.c (CILK_SPAWN_STMT): Remove.
      	* c-omp.c: Remove CILK_SIMD check.
      	* c-pragma.c: Ditto.
      	* c-pragma.h: Remove CILK related pragmas.
      	* c-pretty-print.c (c_pretty_printer::postfix_expression): Remove
      	ARRAY_NOTATION_REF condition.
      	(c_pretty_printer::expression): Ditto.
      	* c.opt (fcilkplus): Remove.
      	* cilk.c: Delete.
      
      gcc/c/
      	* Make-lang.in (c/c-array-notation.o): Remove.
      	* c-array-notation.c: Delete.
      	* c-decl.c: Remove cilkplus condition.
      	* c-parser.c (c_parser_cilk_simd, c_parser_cilk_for,
      	c_parser_cilk_verify_simd, c_parser_array_notation,
      	c_parser_cilk_clause_vectorlength, c_parser_cilk_grainsize,
      	c_parser_cilk_simd_fn_vector_attrs,
      	c_finish_cilk_simd_fn_tokens): Delete.
      	(c_parser_declaration_or_fndef): Remove cilkplus condition.
      	(c_parser_direct_declarator_inner): Ditto.
      	(CILK_SIMD_FN_CLAUSE_MASK): Delete.
      	(c_parser_attributes, c_parser_compound_statement,
      	c_parser_statement_after_labels, c_parser_if_statement,
      	c_parser_switch_statement, c_parser_while_statement,
      	c_parser_do_statement, c_parser_for_statement,
      	c_parser_unary_expression, c_parser_postfix_expression,
      	c_parser_postfix_expression_after_primary,
      	c_parser_pragma, c_parser_omp_clause_name, c_parser_omp_all_clauses,
      	c_parser_omp_for_loop,
      	c_finish_omp_declare_simd): Remove cilkplus support.
      	* c-typeck.c (build_array_ref, build_function_call_vec,
      	convert_arguments, lvalue_p, build_compound_expr, c_finish_return,
      	c_finish_if_stmt, c_finish_loop,
      	build_binary_op): Remove cilkplus support.
      	
      gcc/cp/
      	* Make-lang.in (cp/cp-array-notation.o, cp/cp-cilkplus.o): Delete.
      	* call.c (convert_for_arg_passing, build_cxx_call): Remove cilkplus.
      	* constexpr.c (potential_constant_expression_1): Ditto.
      	* cp-array-notation.c: Delete.
      	* cp-cilkplus.c: Ditto.
      	* cp-cilkplus.h: Ditto.
      	* cp-gimplify.c (cp_gimplify_expr, cp_fold_r, cp_genericize): Remove
      	cilkplus condition.
      	* cp-objcp-common.c (ARRAY_NOTATION_REF): Delete.
      	* cp-tree.h (cilkplus_an_triplet_types_ok_p): Delete.
      	* decl.c (grokfndecl, finish_function): Remove cilkplus condition.
      	* error.c (dump_decl, dump_expr): Remove ARRAY_NOTATION_REF condition.
      	* lambda.c (cp-cilkplus.h): Remove.
      	* parser.c (cp_parser_cilk_simd, cp_parser_cilk_for,
      	cp_parser_cilk_simd_vectorlength): Delete.
      	(cp_debug_parser, cp_parser_ctor_initializer_opt_and_function_body,
      	cp_parser_postfix_expression, cp_parser_postfix_open_square_expression,
      	cp_parser_statement, cp_parser_jump_statement,
      	cp_parser_direct_declarator,
      	cp_parser_late_return_type_opt, cp_parser_gnu_attribute_list,
      	cp_parser_omp_clause_name, cp_parser_omp_clause_aligned,
      	cp_parser_omp_clause_linear, cp_parser_omp_all_clauses,
      	cp_parser_omp_flush, cp_parser_omp_for_cond, cp_parser_omp_for_incr,
      	cp_parser_omp_for_loop_init, cp_parser_omp_for_loop,
      	cp_parser_omp_declare_simd): Remove cilkplus support.
      	(CILK_SIMD_FN_CLAUSE_MASK, cp_parser_late_parsing_cilk_simd_fn_info,
      	cp_parser_cilk_grainsize): Remove.
      	(cp_parser_pragma, c_parse_file): Remove cilkplus support.
      	(cp_parser_cilk_simd_vectorlength, cp_parser_cilk_simd_linear,
      	cp_parser_cilk_simd_clause_name, cp_parser_cilk_simd_all_clauses,
      	cp_parser_cilk_simd, cp_parser_cilk_for): Remove.
      	* parser.h (IN_CILK_SIMD_FOR, IN_CILK_SPAWN): Remove.
      	* pt.c (tsubst_attribute, tsubst_expr, tsubst_copy_and_build): Remove
      	cilkplus support.
      	* semantics.c (finish_goto_stmt, begin_while_stmt, finish_do_body,
      	finish_init_stmt, finish_switch_cond, simplify_aggr_init_expr,
      	finish_omp_clauses, finish_omp_clauses,
      	finish_omp_for): Remove cilkplus support.
      	* tree.c (lvalue_kind): Remove ARRAY_NOTATION_REF conditon.
      	* typeck.c (cp_build_array_ref, cp_build_compound_expr,
      	check_return_expr): Remove cilkplus support.
      
      gcc/testsuite/
      	* c-c++-common/attr-simd-3.c: Delete.
      	* c-c++-common/cilk-plus/AN/an-if.c: Delete.
      	* c-c++-common/cilk-plus/AN/array_test1.c: Delete.
      	* c-c++-common/cilk-plus/AN/array_test2.c: Delete.
      	* c-c++-common/cilk-plus/AN/array_test_ND.c: Delete.
      	* c-c++-common/cilk-plus/AN/builtin_fn_custom.c: Delete.
      	* c-c++-common/cilk-plus/AN/builtin_fn_mutating.c: Delete.
      	* c-c++-common/cilk-plus/AN/builtin_func_double.c: Delete.
      	* c-c++-common/cilk-plus/AN/builtin_func_double2.c: Delete.
      	* c-c++-common/cilk-plus/AN/comma_exp.c: Delete.
      	* c-c++-common/cilk-plus/AN/conditional.c: Delete.
      	* c-c++-common/cilk-plus/AN/decl-ptr-colon.c: Delete.
      	* c-c++-common/cilk-plus/AN/dimensionless-arrays.c: Delete.
      	* c-c++-common/cilk-plus/AN/exec-once.c: Delete.
      	* c-c++-common/cilk-plus/AN/exec-once2.c: Delete.
      	* c-c++-common/cilk-plus/AN/fn_ptr-2.c: Delete.
      	* c-c++-common/cilk-plus/AN/fn_ptr.c: Delete.
      	* c-c++-common/cilk-plus/AN/fp_triplet_values.c: Delete.
      	* c-c++-common/cilk-plus/AN/gather-scatter-errors.c: Delete.
      	* c-c++-common/cilk-plus/AN/gather_scatter.c: Delete.
      	* c-c++-common/cilk-plus/AN/if_test.c: Delete.
      	* c-c++-common/cilk-plus/AN/if_test_errors.c: Delete.
      	* c-c++-common/cilk-plus/AN/misc.c: Delete.
      	* c-c++-common/cilk-plus/AN/n-ptr-test.c: Delete.
      	* c-c++-common/cilk-plus/AN/parser_errors.c: Delete.
      	* c-c++-common/cilk-plus/AN/parser_errors2.c: Delete.
      	* c-c++-common/cilk-plus/AN/parser_errors3.c: Delete.
      	* c-c++-common/cilk-plus/AN/parser_errors4.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57457-2.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57457.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57490.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57541-2.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57541.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57577.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr58942.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr61191.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr61455-2.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr61455.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr61962.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr61963.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr62008.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr63884.c: Delete.
      	* c-c++-common/cilk-plus/AN/rank_mismatch.c: Delete.
      	* c-c++-common/cilk-plus/AN/rank_mismatch2.c: Delete.
      	* c-c++-common/cilk-plus/AN/rank_mismatch3.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_implicit.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_implicit2.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_implicit_ex.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_reduce_ind_same_value.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_reduce_max_min_ind.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_reduce_return.c: Delete.
      	* c-c++-common/cilk-plus/AN/side-effects-1.c: Delete.
      	* c-c++-common/cilk-plus/AN/test_builtin_return.c: Delete.
      	* c-c++-common/cilk-plus/AN/test_sec_limits.c: Delete.
      	* c-c++-common/cilk-plus/AN/tst_lngth.c: Delete.
      	* c-c++-common/cilk-plus/AN/vla.c: Delete.
      	* c-c++-common/cilk-plus/CK/Wparentheses-1.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk-for-2.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk-for-3.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk-fors.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk_for_errors.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk_for_grain.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk_for_grain_errors.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk_for_ptr_iter.c: Delete.
      	* c-c++-common/cilk-plus/CK/compound_cilk_spawn.c: Delete.
      	* c-c++-common/cilk-plus/CK/concec_cilk_spawn.c: Delete.
      	* c-c++-common/cilk-plus/CK/errors.c: Delete.
      	* c-c++-common/cilk-plus/CK/fib.c: Delete.
      	* c-c++-common/cilk-plus/CK/fib_init_expr_xy.c: Delete.
      	* c-c++-common/cilk-plus/CK/fib_no_return.c: Delete.
      	* c-c++-common/cilk-plus/CK/fib_no_sync.c: Delete.
      	* c-c++-common/cilk-plus/CK/invalid_spawns.c: Delete.
      	* c-c++-common/cilk-plus/CK/invalid_sync.c: Delete.c
      	* c-c++-common/cilk-plus/CK/nested_cilk_for.c: Delete.
      	* c-c++-common/cilk-plus/CK/no_args_error.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr59631.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr60197-2.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr60197.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr60469.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr60586.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr63307.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr69826-1.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr69826-2.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr79428-4.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr79428-7.c: Delete.
      	* c-c++-common/cilk-plus/CK/spawn_in_return.c: Delete.
      	* c-c++-common/cilk-plus/CK/spawnee_inline.c: Delete.
      	* c-c++-common/cilk-plus/CK/spawner_inline.c: Delete.
      	* c-c++-common/cilk-plus/CK/spawning_arg.c: Delete.
      	* c-c++-common/cilk-plus/CK/steal_check.c: Delete.
      	* c-c++-common/cilk-plus/CK/sync_wo_spawn.c: Delete.
      	* c-c++-common/cilk-plus/CK/test__cilk.c: Delete.
      	* c-c++-common/cilk-plus/CK/varargs_test.c: Delete.
      	* c-c++-common/cilk-plus/PS/Wparentheses-1.c: Delete.
      	* c-c++-common/cilk-plus/PS/body.c: Delete.
      	* c-c++-common/cilk-plus/PS/clauses1.c: Delete.
      	* c-c++-common/cilk-plus/PS/clauses2.c: Delete.
      	* c-c++-common/cilk-plus/PS/clauses3.c: Delete.
      	* c-c++-common/cilk-plus/PS/clauses4.c: Delete.
      	* c-c++-common/cilk-plus/PS/for1.c: Delete.
      	* c-c++-common/cilk-plus/PS/for2.c: Delete.
      	* c-c++-common/cilk-plus/PS/for3.c: Delete.
      	* c-c++-common/cilk-plus/PS/pr69363.c: Delete.
      	* c-c++-common/cilk-plus/PS/reduction-1.c: Delete.
      	* c-c++-common/cilk-plus/PS/reduction-2.c: Delete.
      	* c-c++-common/cilk-plus/PS/reduction-3.c: Delete.
      	* c-c++-common/cilk-plus/PS/run-1.c: Delete.
      	* c-c++-common/cilk-plus/PS/safelen.c: Delete.
      	* c-c++-common/cilk-plus/PS/vectorlength-2.c: Delete.
      	* c-c++-common/cilk-plus/PS/vectorlength-3.c: Delete.
      	* c-c++-common/cilk-plus/PS/vectorlength.c: Delete.
      	* c-c++-common/cilk-plus/SE/ef_error.c: Delete.
      	* c-c++-common/cilk-plus/SE/ef_error2.c: Delete.
      	* c-c++-common/cilk-plus/SE/ef_error3.c: Delete.
      	* c-c++-common/cilk-plus/SE/ef_test.c: Delete.
      	* c-c++-common/cilk-plus/SE/ef_test2.c: Delete.
      	* c-c++-common/cilk-plus/SE/vlength_errors.c: Delete.
      	* g++.dg/cilk-plus/AN/array_function.c: Delete.
      	* g++.dg/cilk-plus/AN/array_test1_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/array_test2_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/array_test_ND_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/braced_list.c: Delete.
      	* g++.dg/cilk-plus/AN/builtin_fn_custom_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/fp_triplet_values_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/postincr_test.c: Delete.
      	* g++.dg/cilk-plus/AN/preincr_test.c: Delete.
      	* g++.dg/cilk-plus/CK/catch_exc.c: Delete.
      	* g++.dg/cilk-plus/CK/cf3.c: Delete.
      	* g++.dg/cilk-plus/CK/cilk-for-tplt.c: Delete.
      	* g++.dg/cilk-plus/CK/const_spawn.c: Delete.
      	* g++.dg/cilk-plus/CK/fib-opr-overload.c: Delete.
      	* g++.dg/cilk-plus/CK/fib-tplt.c: Delete.
      	* g++.dg/cilk-plus/CK/for1.c: Delete.
      	* g++.dg/cilk-plus/CK/lambda_spawns.c: Delete.
      	* g++.dg/cilk-plus/CK/lambda_spawns_tplt.c: Delete.
      	* g++.dg/cilk-plus/CK/pr60586.c: Delete.
      	* g++.dg/cilk-plus/CK/pr66326.c: Delete.
      	* g++.dg/cilk-plus/CK/pr68001.c: Delete.
      	* g++.dg/cilk-plus/CK/pr68997.c: Delete.
      	* g++.dg/cilk-plus/CK/pr69024.c: Delete.
      	* g++.dg/cilk-plus/CK/pr69048.c: Delete.
      	* g++.dg/cilk-plus/CK/pr69267.c: Delete.
      	* g++.dg/cilk-plus/CK/pr80038.c: Delete.
      	* g++.dg/cilk-plus/CK/stl_iter.c: Delete.
      	* g++.dg/cilk-plus/CK/stl_rev_iter.c: Delete.
      	* g++.dg/cilk-plus/CK/stl_test.c: Delete.
      	* g++.dg/cilk-plus/cilk-plus.exp
      	* g++.dg/cilk-plus/ef_test.C: Delete.
      	* g++.dg/cilk-plus/for.C: Delete.
      	* g++.dg/cilk-plus/for2.C: Delete.
      	* g++.dg/cilk-plus/for3.C: Delete.
      	* g++.dg/cilk-plus/for4.C: Delete.
      	* g++.dg/cilk-plus/pr60967.C: Delete.
      	* g++.dg/cilk-plus/pr69028.C: Delete.
      	* g++.dg/cilk-plus/pr70565.C: Delete.
      	* g++.dg/pr57662.C: Delete.
      	* gcc.dg/cilk-plus/cilk-plus.exp
      	* gcc.dg/cilk-plus/for1.c: Delete.
      	* gcc.dg/cilk-plus/for2.c: Delete.
      	* gcc.dg/cilk-plus/jump-openmp.c: Delete.
      	* gcc.dg/cilk-plus/jump.c: Delete.
      	* gcc.dg/cilk-plus/pr69798-1.c: Delete.
      	* gcc.dg/cilk-plus/pr69798-2.c: Delete.
      	* gcc.dg/cilk-plus/pr78306.c: Delete.
      	* gcc.dg/cilk-plus/pr79116.c: Delete.
      	* gcc.dg/graphite/id-28.c: Delete.
      	* lib/cilk-plus-dg.exp: Delete.
      	* lib/target-supports.exp (cilkplus_runtime): Delete.
      
      Co-Authored-By: Sebastian Peryt <sebastian.peryt@intel.com>
      
      From-SVN: r255195
      Julia Koval committed
    • [Patch AArch64] Fixup floating point division with -march=armv8-a+nosimd · 1be49a38
      The canonical examples is :
      
          double
          foo (double x, double y)
            {
              return x / y;
            }
      
          with -march=armv8-a+nosimd
      
      generates a function that calls __divdf3. Ofcourse on AArch64 we don't
      have any software floating point and this causes issues.
      
      There is also a problem in +nosimd that has existed since the dawn of
      time in the port with respect to long doubles (128 bit floating
      point), here the ABI and the compiler expect the presence of the SIMD
      unit as these parameters are passed in the vector registers. Thus
      while +nosimd tries to prevent the use of SIMD instructions in the
      compile we don't get this right as we end up using ldr qN / str qN
      instructions and even there I think things go wrong in a simple
      example that I tried.
      
      Is that sufficient to consider marking +nosimd as deprecated in GCC-8
      and remove this in a future release ?
      
      That is not a subject for this patch but something separate but I
      would like to put this into trunk and the release
      branches. Bootstrapped and regression tested on my aarch64 desktop.
      
      Ok ?
      
      From-SVN: r255194
      Ramana Radhakrishnan committed
    • re PR rtl-optimization/81020 (wrong code with -O -fno-tree-bit-ccp… · 3c88da0d
      re PR rtl-optimization/81020 (wrong code with -O -fno-tree-bit-ccp -fno-tree-coalesce-vars -fno-tree-vrp)
      
      	PR rtl-optimization/81020
      	* gcc.dg/pr81020.c: New test.
      
      From-SVN: r255193
      Jakub Jelinek committed
    • tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree. · 9e851845
      	* tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree.
      	Adjust comment.
      	* tree.h (SWITCH_LABELS): Remove.
      	* gimplify.c (gimplify_switch_expr): Don't test SWITCH_LABELS,
      	assert SWITCH_BODY is non-NULL.
      	* tree-pretty-print.c (dump_generic_node): Remove SWITCH_LABELS
      	handling.
      	* tree.c (block_may_fallthru): Always return true; for SWITCH_EXPR.
      c/
      	* c-typeck.c (c_start_case): Build SWITCH_EXPR using build2 instead
      	of build3.
      cp/
      	* cp-gimplify.c (genericize_switch_stmt): Build SWITCH_EXPR using
      	build2_loc instead of build3_loc.
      ada/
      	* gcc-interface/trans.c (Case_Statement_to_gnu): Build SWITCH_EXPR
      	using build2 instead of build3.
      jit/
      	* jit-playback.c (add_switch): Build SWITCH_EXPR using build2 instead
      	of build3.  Formatting fixes.  Adjust funciton comment.
      fortran/
      	* trans-decl.c (gfc_trans_entry_master_switch): Build SWITCH_EXPR
      	using fold_build2_loc instead of fold_build3_loc.
      	* trans-io.c (io_result): Likewise.
      	* trans-stmt.c (gfc_trans_integer_select, gfc_trans_character_select):
      	Likewise.
      go/
      	* go-gcc.cc (Gcc_backend::switch_statement): Build SWITCH_EXPR using
      	build2_loc instead of build3_loc.
      brig/
      	* brigfrontend/brig-branch-inst-handler.cc
      	(brig_branch_inst_handler::operator): Build SWITCH_EXPR using build2
      	instead of build3.
      
      From-SVN: r255192
      Jakub Jelinek committed
    • re PR tree-optimization/80788 (ICE in set_value_range, at tree-vrp.c:252) · 11c1e63c
      	PR tree-optimization/80788
      	* match.pd (X +- C1 CMP C2 -> X CMP C2 -+ C1): If res
      	has TREE_OVERFLOW set, call drop_tree_overflow.
      
      	* gcc.dg/pr80788.c: New test.
      
      From-SVN: r255191
      Jakub Jelinek committed
    • re PR target/83158 (gcc.target/i386/pr78057.c fail) · 6a7a7f92
      2017-11-28  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/83158
      	* tree-vrp.c (intersect_ranges): Prefer ~[0, 0] in a few more
      	cases.
      
      From-SVN: r255190
      Richard Biener committed
    • * MAINTAINERS (write after approval): Add myself. · d2eaaa89
      From-SVN: r255189
      Julia Koval committed
    • rs6000: Improve comparison rtx_cost (PR81288) · b8adcbd9
      The current rs6000 rtx_cost for comparisons against 0 is very high if
      TARGET_ISEL && !TARGET_MFCRF, much higher than for reg-reg comparisons,
      much higher than a load of 0 and such a reg-reg-comparison.  This leads
      to infinite recursion in CSE (see PR81288).
      
      This patch removes the too-high cost, also simplifying this code.
      
      
      	PR 81288/target
      	* config/rs6000/rs6000.c (rs6000_rtx_costs): Do not handle
      	TARGET_ISEL && !TARGET_MFCRF differently.  Simplify code.
      
      From-SVN: r255188
      Segher Boessenkool committed
    • rs6000: Improve scc isel · fd8bf76c
      If we have a negative condition we can use a literal 0 in the isel,
      instead of having to load it into a register.  If the condition is from
      a comparison with an immediate we can change e.g. LT to LE and adjust
      the immediate, saving a li instruction.
      
      
      	* config/rs6000/rs6000.md (<code><GPR:mode><GPR2:mode>2_isel): Change
      	LT/GT/LTU/GTU to LE/GE/LEU/GEU where possible.
      
      From-SVN: r255186
      Segher Boessenkool committed
    • Daily bump. · 2ac1a8d8
      From-SVN: r255185
      GCC Administrator committed
    • PR c++/83058 - ICE on C++ code with negative array index: in warn_placement_new_too_small · 9ca1eaac
      gcc/cp/ChangeLog:
      
      	PR c++/83058
      	* init.c (warn_placement_new_too_small): Use offset_int instead of
      	HOST_WIDE_INT.
      
      gcc/testsuite/ChangeLog:
      
      	PR c++/83058
      	* g++.dg/warn/Wplacement-new-size-5.C: New test.
      
      From-SVN: r255182
      Martin Sebor committed