1. 04 May, 2017 7 commits
    • tree.c (array_at_struct_end_p): Handle arrays at struct end with flexarrays more conservatively. · c3e46927
      2017-05-04  Richard Biener  <rguenther@suse.de>
      
      	* tree.c (array_at_struct_end_p): Handle arrays at struct
      	end with flexarrays more conservatively.  Refactor and treat
      	arrays of arrays or aggregates more strict.  Fix
      	VIEW_CONVERT_EXPR handling.  Remove allow_compref argument.
      	* tree.c (array_at_struct_end_p): Adjust prototype.
      	* emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
      	* gimple-fold.c (get_range_strlen): Likewise.
      	* tree-chkp.c (chkp_may_narrow_to_field): Likewise.
      
      From-SVN: r247581
      Richard Biener committed
    • Replace absolute line numbers in g++.dg/warn · 99b68476
      2017-05-04  Tom de Vries  <tom@codesourcery.com>
      
      	PR testsuite/80557
      	* g++.dg/warn/Wstrict-aliasing-float-ref-int-obj.C: Replace absolute
      	line numbers.
      	* g++.dg/warn/miss-format-1.C: Same.
      	* g++.dg/warn/overflow-warn-1.C: Same.
      	* g++.dg/warn/overflow-warn-3.C: Same.
      	* g++.dg/warn/overflow-warn-4.C: Same.
      
      From-SVN: r247580
      Tom de Vries committed
    • Replace absolute line numbers in gcc.target/i386 · 09177a4b
      2017-05-04  Tom de Vries  <tom@codesourcery.com>
      
      	PR testsuite/80557
      	* gcc.target/i386/pr57655.c: Replace absolute line numbers.
      	* gcc.target/i386/pr68657.c: Same.
      	* gcc.target/i386/pr69255-1.c: Same.
      	* gcc.target/i386/pr69255-2.c: Same.
      	* gcc.target/i386/pr69255-3.c: Same.
      
      From-SVN: r247579
      Tom de Vries committed
    • re PR tree-optimization/31130 (VRP no longer derives range for division after negation) · 02c64149
      2017-05-04  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/31130
      	* tree-vrp.c (needs_overflow_infinity): Remove as always returning
      	false.
      	(supports_overflow_infinity): Likewise.
      	(is_negative_overflow_infinity): Likewise.
      	(is_positive_overflow_infinity): Likewise.
      	(is_overflow_infinity): Likewise.
      	(stmt_overflow_infinity): Likewise.
      	(overflow_infinity_range_p): Likewise.
      	(usable_range_p): Remove as always returning true.
      	(make_overflow_infinity): Remove.
      	(negative_overflow_infinity): Likewise.
      	(positive_overflow_infinity): Likewise.
      	(avoid_overflow_infinity): Likewise.
      	(set_value_range): Adjust accordingly.
      	(set_value_range_to_nonnegative): Likewise, remove now unused
      	overflow_infinity arg.
      	(vrp_operand_equal_p): Adjust.
      	(update_value_range): Likewise.
      	(range_int_cst_singleton_p): Likewise.
      	(operand_less_p): Likewise.
      	(compare_values_warnv): Likewise.
      	(extract_range_for_var_from_comparison_expr): Likewise.
      	(vrp_int_const_binop): Likewise.
      	(zero_nonzero_bits_from_vr): Likewise.
      	(extract_range_from_multiplicative_op_1): Likewise.
      	(extract_range_from_binary_expr_1): Likewise.
      	(extract_range_from_unary_expr): Likewise.
      	(extract_range_from_comparison): Likewise.
      	(extract_range_basic): Likewise.
      	(adjust_range_with_scev): Likewise.
      	(compare_ranges): Likewise.
      	(compare_range_with_value): Likewise.
      	(dump_value_range): Likewise.
      	(test_for_singularity): Likewise, remove strict_overflow_p parameter
      	never used.
      	(simplify_cond_using_ranges): Adjust.
      
      	* gcc.dg/Wstrict-overflow-12.c: XFAIL.
      	* gcc.dg/Wstrict-overflow-13.c: Likewise.
      	* gcc.dg/Wstrict-overflow-21.c: Likewise.
      	* gcc.dg/pr52904.c: Remove XFAIL.
      	* gcc.dg/tree-ssa/vrp114.c: New testcase.
      
      From-SVN: r247578
      Richard Biener committed
    • Removed accidentally committed conflict marker. · 2b451410
      From-SVN: r247577
      Pekka Jääskeläinen committed
    • Minor BRIG/HSAIL frontend updates and bug fixes: · c6e334cd
      * brig-builtins.def: Added a builtin for class_f64.
      * builtin-types.def: Added a builtin type needed by class_f64.
      * brigfrontend/brig-code-entry-handler.cc
       (brig_code_entry_handler::build_address_operand): Fix a bug
       with reg+offset addressing on 32b segments. In large mode,
       the offset is treated as 32bits unless it's global, readonly or
       kernarg address space.
      * rt/workitems.c: Removed a leftover comment.
      * rt/arithmetic.c (__hsail_class_f32, __hsail_class_f64): Fix the
       check for signaling/non-signalling NaN. Add class_f64 default
       implementation.
      
      From-SVN: r247576
      Pekka Jääskeläinen committed
    • Daily bump. · 1738af60
      From-SVN: r247575
      GCC Administrator committed
  2. 03 May, 2017 24 commits
    • * de.po: Update. · 17addff8
      From-SVN: r247570
      Joseph Myers committed
    • invoke.texi: Note that -faligned-new is on by default for C++17. · 0cb222fc
      	* doc/invoke.texi: Note that -faligned-new is on by default
      	for C++17.
      
      From-SVN: r247564
      Jason Merrill committed
    • timevar.def: Add TV_CONSTEXPR. · 8108ea30
      	* timevar.def: Add TV_CONSTEXPR.
      
      	* constexpr.c (cxx_eval_outermost_constant_expr): Use TV_CONSTEXPR.
      
      From-SVN: r247563
      Jason Merrill committed
    • Fix typo in common.opt · 8135a004
      gcc/ChangeLog:
      	* common.opt (fdiagnostics-parseable-fixits): Fix typo.
      
      From-SVN: r247562
      David Malcolm committed
    • Remove ipa_update_after_lto_read · 44abeaaa
      2017-05-03  Martin Jambor  <mjambor@suse.cz>
      
      	* ipa-prop.c (ipa_update_after_lto_read): Removed.
      	* ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
      	* ipa-cp.c (ipcp_propagate_stage): Do not call
      	ipa_update_after_lto_read.
      	* ipa-inline.c (ipa_inline): Likewise.
      
      From-SVN: r247559
      Martin Jambor committed
    • Use call_summary in ipa-prop and ipa-cp · 6fe906a3
      2017-05-03  Martin Jambor  <mjambor@suse.cz>
      
      	* ipa-prop.h (ipa_edge_args): Make a class.  Mark with for_user GTY
      	tag.  Added a default constructor and a destructor.
      	(ipa_edge_args_sum_t): New class;
      	(ipa_edge_args_sum): Declare.
      	(ipa_edge_args_vector): Remove declaration.
      	(IPA_EDGE_REF): Use ipa_edge_args_sum.
      	(ipa_free_edge_args_substructures): Remove declaration.
      	(ipa_check_create_edge_args): Use ipa_edge_args_sum.
      	(ipa_edge_args_info_available_for_edge_p): Likewise.
      	* ipa-prop.c (ipa_edge_args_vector): Removed.
      	(edge_removal_hook_holder): Likewise.
      	(edge_duplication_hook_holder): Likewise.
      	(ipa_edge_args_sum): New variable.
      	(ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
      	ipa_edge_args_vector.
      	(ipa_free_edge_args_substructures): Likewise.
      	(ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
      	ipa_edge_args_vector.
      	(ipa_edge_removal_hook): Turned into method
      	ipa_edge_args_sum_t::remove.
      	(ipa_edge_duplication_hook): Turned into method
      	ipa_edge_args_sum_t::duplicate.
      	(ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
      	registering edge hooks.
      	(ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
      	* ipa-inline-analysis.c (estimate_function_body_sizes): Test
      	ipa_edge_args_sum instead of ipa_edge_args_vector.
      	* ipa-profile.c (ipa_profile): Likewise.
      
      From-SVN: r247558
      Martin Jambor committed
    • call_summary to keep info about cgraph_edges · 57e563ac
      2017-05-03  Martin Jambor  <mjambor@suse.cz>
      
      	* symbol-summary.h (function_summary): New method exists.
      	(function_summary::symtab_removal): Deallocate through release.
      	(call_summary): New class.
      	(gt_ggc_mx): New overload.
      	(gt_pch_nx): Likewise.
      	(gt_pch_nx): Likewise.
      
      From-SVN: r247557
      Martin Jambor committed
    • re PR tree-optimization/78496 (Missed opportunities for jump threading) · 9a26dfc8
      	PR tree-optimization/78496
      	* tree-vrp.c (simplify_cond_using_ranges_1): Renamed
      	from simplify_cond_using_ranges.  Split off code to walk
      	backwards through casts into ...
      	(simplify_cond_using_ranges_2): New function.
      	(simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
      	(execute_vrp): After identifying jump threads, call
      	simplify_cond_using_ranges_2.
      
      	PR tree-optimization/78496
      	* gcc.dg/tree-ssa/ssa-thread-15.c: New test.
      
      From-SVN: r247556
      Jeff Law committed
    • re PR ipa/80609 (crash_signal in reset_inline_summary on ia64 bootstrap) · 5386abe0
      
      	PR bootstrap/80609
      	* ipa-inline.h (inline_summary): Add ctor.
      	(create_ggc): Do not use ggc_cleared_alloc.
      
      From-SVN: r247555
      Jan Hubicka committed
    • config-list.mk (am33_2.0-linux): Remove from list of targets to build. · f47337ae
      2007-05-03  Jeff Law  <law@redhat.com>
      
      	* config-list.mk (am33_2.0-linux): Remove from list of targets
      	to build.
      
      From-SVN: r247553
      Jeff Law committed
    • Support escaping special characters in specs · 31c83050
      2017-05-03  Jeff Downs  <heydowns@somuchpressure.net>
      	    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
      
      	* gcc.c (handle_braces): Support escaping in switch matching
      	text.
      	* doc/invoke.texi (Spec Files): Document it.
      	Remove superfluous @code markup in items.
      
      Co-Authored-By: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
      
      From-SVN: r247552
      Jeff Downs committed
    • pr79671_0.C (foo): Fix asm constraints. · 4d0e904f
      	* g++.dg/lto/pr79671_0.C (foo): Fix asm constraints.
      
      From-SVN: r247550
      Uros Bizjak committed
    • New fix-it printer · d1b5f5cc
      The existing fix-it printer can lead to difficult-to-read output
      when fix-it hints are near each other.  For example, in a recent
      patch to add fix-it hints to the C++ frontend's -Wold-style-cast,
      e.g. for:
      
        foo *f = (foo *)ptr->field;
                             ^~~~~
      
      the fix-it hints:
       replace the open paren with "const_cast<"
       replace the close paren with "> ("
       insert ")" after the "ptr->field"
      
      would be printed in this odd-looking way:
      
        foo *f = (foo *)ptr->field;
                             ^~~~~
                 -
                 const_cast<
                       -
                       > (        )
      
      class rich_location consolidates adjacent fix-it hints, which helps
      somewhat, but the underlying problem is that the existing printer
      simply walks through the list of hints printing them, starting newlines
      as necessary.
      
      This patch reimplements fix-it printing by introducing a planning
      stage: a new class line_corrections "plans" how to print the
      fix-it hints affecting a line, generating a vec of "correction"
      instances.  Hints that are sufficiently close to each other are
      consolidated at this stage.
      
      This leads to the much more reasonable output for the above case:
      
        foo *f = (foo *)ptr->field;
                             ^~~~~
                 -----------------
                 const_cast<foo *> (ptr->field);
      
      where the 3 hints are consolidated into one "correction" at printing.
      
      gcc/ChangeLog:
      	* diagnostic-show-locus.c (struct column_range): New struct.
      	(get_affected_columns): New function.
      	(get_printed_columns): New function.
      	(struct correction): New struct.
      	(correction::ensure_capacity): New function.
      	(correction::ensure_terminated): New function.
      	(struct line_corrections): New struct.
      	(line_corrections::~line_corrections): New dtor.
      	(line_corrections::add_hint): New function.
      	(layout::print_trailing_fixits): Reimplement in terms of the new
      	classes.
      	(selftest::test_overlapped_fixit_printing): New function.
      	(selftest::diagnostic_show_locus_c_tests): Call it.
      
      From-SVN: r247548
      David Malcolm committed
    • cp-tree.h (enum cp_tree_index, [...]): Move earlier, along with #defines, to… · 5bb64c41
      cp-tree.h (enum cp_tree_index, [...]): Move earlier, along with #defines, to before name-lookup include.
      
      	* cp-tree.h (enum cp_tree_index, cp_global_trees): Move earlier,
      	along with #defines, to before name-lookup include.
      
      From-SVN: r247547
      Nathan Sidwell committed
    • Canonicalize canonical type hashing · 6fe63fb4
      	Canonicalize canonical type hashing
      	gcc/
      	* tree.h (type_hash_canon_hash): Declare.
      	* tree.c (type_hash_list, attribute_hash_list): Move into
      	type_hash_canon_hash.
      	(build_type_attribute_qual_variant): Break out hash code calc into
      	type_hash_canon_hash.
      	(type_hash_canon_hash): New.  Generic type hash computation.
      	(build_range_type_1, build_array_type_1, build_function_type)
      	build_method_type_directly, build_offset_type, build_complex_type,
      	make_vector_type): Call it.
      	gcc/c-family/
      	* c-common.c (complete_array_type): Use type_hash_canon.
      (--This line, and those below, will be ignored--
      
      M    gcc/tree.c
      M    gcc/tree.h
      M    gcc/c-family/ChangeLog
      M    gcc/c-family/c-common.c
      M    gcc/ChangeLog
      
      From-SVN: r247546
      Nathan Sidwell committed
    • tree-vect-data-refs.c (vect_enhance_data_refs_alignment): When all DRs have… · 49ab4621
      tree-vect-data-refs.c (vect_enhance_data_refs_alignment): When all DRs have unknown misaligned do not always peel when...
      
      2017-05-03  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
      	When all DRs have unknown misaligned do not always peel
      	when there is a store but apply the same costing model as if
      	there were only loads.
      
      	* gcc.dg/vect/costmodel/x86_64/costmodel-alignpeel.c: New testcase.
      
      From-SVN: r247544
      Richard Biener committed
    • revert: re PR tree-optimization/80492 (Wrong code when unrolling a loop with… · 8d5f521a
      revert: re PR tree-optimization/80492 (Wrong code when unrolling a loop with inline asm and local regs)
      
      2017-05-03  Richard Biener  <rguenther@suse.de>
      
      	Revert
      	PR tree-optimization/80492
      	* tree-ssa-alias.c (decl_refs_may_alias_p): Handle
      	compare_base_decls returning dont-know properly.
      
      From-SVN: r247543
      Richard Biener committed
    • [ARM] Set mode for success result of atomic compare and swap · 3cff0135
      2017-05-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
      gcc/
          * config/arm/iterators.md (CCSI): New mode iterator.
          (arch): New mode attribute.
          * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
          (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
          (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This.  Use CCSI
          code iterator for success result mode.
          * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
          the corresponding new insn generators.
      
      From-SVN: r247542
      Thomas Preud'homme committed
    • Revert r247509 2017-05-02 Bin Cheng <bin.cheng@arm.com> · 0ec5af39
      	Revert r247509
      	2017-05-02  Bin Cheng  <bin.cheng@arm.com>
      	* rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
      
      From-SVN: r247541
      Bin Cheng committed
    • Wrap tree-data-ref.h macro arguments · 45d93414
      gcc/
      2016-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
      
      	* tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
      	(SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
      	(DDR_A): Wrap DDR argument in brackets.
      	(DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
      	(DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
      	(DDR_REVERSED_P): Likewise.
      
      From-SVN: r247539
      Richard Sandiford committed
    • re PR tree-optimization/79472 (x86-64: Switch table generation fails if default… · 18bfe940
      re PR tree-optimization/79472 (x86-64: Switch table generation fails if default case has different code)
      
      	PR tree-optimization/79472
      	* tree-switch-conversion.c (struct switch_conv_info): Add
      	contiguous_range and default_case_nonstandard fields.
      	(collect_switch_conv_info): Compute contiguous_range and
      	default_case_nonstandard fields, don't clear final_bb if
      	contiguous_range and only the default case doesn't have the required
      	structure.
      	(check_all_empty_except_final): Set default_case_nonstandard instead
      	of failing if contiguous_range and the default case doesn't have empty
      	block.
      	(check_final_bb): Add SWTCH argument, don't fail if contiguous_range
      	and only the default case doesn't have the required constants.  Skip
      	virtual phis.
      	(gather_default_values): Skip virtual phis.  Allow non-NULL CASE_LOW
      	if default_case_nonstandard.
      	(build_constructors): Build constant 1 just once.  Assert that default
      	values aren't inserted in between cases if contiguous_range.  Skip
      	virtual phis.
      	(build_arrays): Skip virtual phis.
      	(prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
      	(fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
      	Handle virtual phis.
      	(gen_inbound_check): Handle default_case_nonstandard case.
      	(process_switch): Adjust check_final_bb caller.  Call
      	gather_default_values with the first non-default case instead of
      	default case if default_case_nonstandard.
      
      	* gcc.dg/tree-ssa/vrp40.c: Add -fno-tree-switch-conversion to dg-options.
      	* gcc.dg/tree-ssa/vrp113.c: New test.
      	* gcc.dg/tree-ssa/cswtch-3.c: New test.
      	* gcc.dg/tree-ssa/cswtch-4.c: New test.
      	* gcc.dg/tree-ssa/cswtch-5.c: New test.
      
      From-SVN: r247538
      Jakub Jelinek committed
    • Replace absolute line numbers in c-c++-common · 53e62089
      2017-05-03  Tom de Vries  <tom@codesourcery.com>
      
      	PR testsuite/80557
      	* c-c++-common/Wshift-negative-value-1.c: Replace absolute line numbers.
      	* c-c++-common/Wshift-negative-value-2.c: Same.
      	* c-c++-common/Wshift-negative-value-3.c: Same.
      	* c-c++-common/Wshift-negative-value-4.c: Same.
      	* c-c++-common/cilk-plus/AN/pr57541.c: Same.
      	* c-c++-common/cpp/pr60400.c: Same.
      	* c-c++-common/fmax-errors.c: Same.
      	* c-c++-common/goacc/data-2.c: Same.
      	* c-c++-common/goacc/host_data-2.c: Same.
      	* c-c++-common/gomp/simd4.c: Same.
      	* c-c++-common/pr28656.c: Same.
      	* c-c++-common/pr43395.c: Same.
      	* c-c++-common/torture/pr57945.c: Same.
      
      From-SVN: r247537
      Tom de Vries committed
    • Add quotes to numerical comment arg of dg directive · 962913a5
      2017-05-03  Tom de Vries  <tom@codesourcery.com>
      
      	* c-c++-common/goacc/data-default-1.c: Add quotes to numerical comment
      	arg of dg directive.
      	* c-c++-common/goacc/routine-3.c: Same.
      	* c-c++-common/goacc/routine-4.c: Same.
      
      From-SVN: r247536
      Tom de Vries committed
    • Daily bump. · 3fe691c5
      From-SVN: r247533
      GCC Administrator committed
  3. 02 May, 2017 9 commits
    • ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i-- check. · 3608eff9
      	* ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
      	check.  Fix formatting.
      
      From-SVN: r247529
      Nathan Sidwell committed
    • ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff errors when… · 0e8d6eb7
      ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff errors when comparing specialized and unspecialized times.
      
      
      	* ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
      	errors when comparing specialized and unspecialized times.
      
      From-SVN: r247528
      Jan Hubicka committed
    • pt.c (is_auto_or_concept): Remove. · c3b73151
      2017-05-02  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* pt.c (is_auto_or_concept): Remove.
      	(type_uses_auto_or_concept): Remove, unused.
      	(find_parameter_packs_r, extract_autos_r, is_auto_r): Adjust.
      	* parser.c (tree_type_is_auto_or_concept): Remove, unused.
      	* cp-tree.h (is_auto_or_concept): Remove.
      
      From-SVN: r247526
      Paolo Carlini committed
    • * es.po: Update. · 459d2f5a
      From-SVN: r247524
      Joseph Myers committed
    • Support fix-it hints that add new lines · ad53f123
      Previously fix-it hints couldn't contain newlines.  This is
      due to the need to print something user-readable for them
      within diagnostic-show-locus, and for handling them within
      edit-context for printing diffs and regenerating content.
      
      This patch enables limited support for fix-it hints with newlines,
      for suggesting adding new lines.
      Such a fix-it hint must have exactly one newline character, at the
      end of the content.  It must be an insertion at the beginning of
      a line (so that e.g. fix-its that split a pre-existing line are
      still rejected).
      
      They are printed by diagnostic-show-locus with a '+' in the
      left-hand margin, like this:
      
      test.c:42:4: note: suggest adding 'break;' here
      +      break;
           case 'b':
           ^~~~~~~~~
      
      and the printer injects "spans" if the insertion location is not
      near the primary range of the diagnostic e.g.:
      
      test.c:4:2: note: unrecognized 'putchar'; suggest including '<stdio.h>'
      test.c:1:1:
      +#include <stdio.h>
      
      test.c:4:2:
        putchar (ch);
        ^~~~~~~
      
      gcc/ChangeLog:
      	* diagnostic-show-locus.c
      	(layout::should_print_annotation_line_p): Make private.
      	(layout::print_annotation_line): Make private.
      	(layout::annotation_line_showed_range_p): Make private.
      	(layout::show_ruler): Make private.
      	(layout::print_source_line): Make private.  Pass in line and
      	line_width, rather than calling location_get_source_line.  Drop
      	returned value.
      	(layout::print_leading_fixits): New method.
      	(layout::print_any_fixits): Rename to...
      	(layout::print_trailing_fixits): ...this, and make private.
      	Don't print newline fixits.
      	(diagnostic_show_locus): Move logic for printing one row into...
      	(layout::print_line): ...this new function.  Move the
      	location_get_source_line call and error-handling from
      	print_source_line to here.  Call print_leading_fixits, and rename
      	print_any_fixits to print_trailing_fixits.
      	(selftest::test_fixit_insert_containing_newline): Update now that
      	newlines are partially supported.
      	(selftest::test_fixit_insert_containing_newline_2): New test.
      	(selftest::test_fixit_replace_containing_newline): Update comments.
      	(selftest::diagnostic_show_locus_c_tests): Call the new test.
      	* edit-context.c (class added_line): New class.
      	(class edited_line): Describe newline handling in comment.
      	(edited_line::actually_edited_p): New method.
      	(edited_line::print_content): Delete redundant decl.
      	(edited_line::m_predecessors): New field.
      	(edited_file::print_content): Call edited_line::print_content.
      	(edited_file::print_diff): Update to support newlines.
      	(edited_file::print_diff_hunk): Likewise.
      	(edited_file::print_run_of_changed_lines): New function.
      	(edited_file::print_diff_line): Convert to...
      	(print_diff_line): ...this.
      	(edited_file::get_effective_line_count): New function.
      	(edited_line::edited_line): Initialize new field m_predecessors.
      	(edited_line::~edited_line): Clean up m_predecessors.
      	(edited_line::apply_fixit): Handle newlines.
      	(edited_line::get_effective_line_count): New function.
      	(edited_line::print_content): New function.
      	(edited_line::print_diff_lines): New function.
      	(selftest::test_applying_fixits_insert_containing_newline): New
      	test.
      	(selftest::test_applying_fixits_replace_containing_newline): New
      	test.
      	(selftest::insert_line): New function.
      	(selftest::test_applying_fixits_multiple_lines): Add example of
      	inserting a line.
      	(selftest::edit_context_c_tests): Call the new tests.
      
      gcc/testsuite/ChangeLog:
      	* gcc.dg/plugin/diagnostic-test-show-locus-bw.c
      	(test_fixit_insert_newline): New function.
      	* gcc.dg/plugin/diagnostic-test-show-locus-color.c
      	(test_fixit_insert_newline): New function.
      	* gcc.dg/plugin/diagnostic-test-show-locus-generate-patch.c
      	(test_fixit_insert_newline): New function.
      	* gcc.dg/plugin/diagnostic-test-show-locus-parseable-fixits.c
      	(test_fixit_insert_newline): New function.
      	* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c
      	(test_show_locus): Handle test_fixit_insert_newline.
      
      libcpp/ChangeLog:
      	* include/line-map.h (class rich_location): Update description of
      	newline handling.
      	(class fixit_hint): Likewise.
      	(fixit_hint::ends_with_newline_p): New decl.
      	* line-map.c (rich_location::maybe_add_fixit): Support newlines
      	in fix-it hints that are insertions of single lines at the start
      	of a line.  Don't consolidate into such fix-it hints.
      	(fixit_hint::ends_with_newline_p): New method.
      
      From-SVN: r247522
      David Malcolm committed
    • * fr.po: Update. · 19576ba7
      From-SVN: r247520
      Joseph Myers committed
    • tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete parameter cand. · 13fdeaaf
      	* tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
      	parameter cand.  Update dump information.
      	(get_computation_cost): Update uses.
      
      From-SVN: r247519
      Bin Cheng committed
    • tree-ssa-loop-ivopts.c (get_computation_aff_1): New. · db61fc7a
      	* tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
      	(get_computation_aff): Reorder parameters.  Use get_computation_aff_1.
      	(get_computation_at, rewrite_use_address): Update use of
      	get_computation_aff.
      
      From-SVN: r247518
      Bin Cheng committed
    • tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters. · c7da0e81
      	* tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
      	(get_computation): Delete.
      	(get_computation_cost): Implement like get_computation_cost_at.
      	Use get_computation_at.
      	(get_computation_cost_at): Delete.
      	(rewrite_use_nonlinear_expr): Use get_computation_at.
      	(rewrite_use_compare, remove_unused_ivs): Ditto.
      
      From-SVN: r247517
      Bin Cheng committed