1. 13 Nov, 2017 8 commits
    • GCOV: remove typedef for arc_t · 232c80f2
      2017-11-13  Martin Liska  <mliska@suse.cz>
      
      	* gcov.c (struct arc_info): Remove typedef for arc_t.
      	(struct line_info): Likewise.
      	(add_branch_counts): Likewise.
      	(output_branch_count): Likewise.
      	(function_info::~function_info): Likewise.
      	(circuit): Likewise.
      	(output_intermediate_line): Likewise.
      	(read_graph_file): Likewise.
      	(solve_flow_graph): Likewise.
      	(find_exception_blocks): Likewise.
      	(add_line_counts): Likewise.
      	(accumulate_line_info): Likewise.
      	(output_line_details): Likewise.
      	(output_function_details): Likewise.
      
      From-SVN: r254676
      Martin Liska committed
    • GCOV: remove typedef for function_t · cb8758b2
      2017-11-13  Martin Liska  <mliska@suse.cz>
      
      	* gcov.c (struct function_info): Remove typedef for function_t.
      	(struct source_info): Likewise.
      	(source_info::get_functions_at_location): Likewise.
      	(solve_flow_graph): Likewise.
      	(find_exception_blocks): Likewise.
      	(add_line_counts): Likewise.
      	(output_intermediate_file): Likewise.
      	(process_file): Likewise.
      	(generate_results): Likewise.
      	(release_structures): Likewise.
      	(read_graph_file): Likewise.
      	(read_count_file): Likewise.
      	(accumulate_line_counts): Likewise.
      	(output_lines): Likewise.
      
      From-SVN: r254675
      Martin Liska committed
    • GCOV: introduce vector for function_info::counts. · 4464b977
      2017-11-13  Martin Liska  <mliska@suse.cz>
      
      	* gcov.c (function_info::function_info): Remove num_counts
      	and add vector<gcov_type>.
      	(function_info::~function_info): Use the vector.
      	(process_file): Likewise.
      	(read_graph_file): Likewise.
      	(read_count_file): Likewise.
      	(solve_flow_graph): Likewise.
      
      From-SVN: r254674
      Martin Liska committed
    • GCOV: simplify usage of function_info::artificial. · 1e81a283
      2017-11-13  Martin Liska  <mliska@suse.cz>
      
      	* gcov.c (function_info::is_artificial): New function.
      	(process_file): Erase all artificial early.
      	(generate_results): Skip as all artificial are already
      	removed.
      
      From-SVN: r254673
      Martin Liska committed
    • GCOV: introduce global vector of functions · 211bea6b
      2017-11-13  Martin Liska  <mliska@suse.cz>
      
      	* gcov.c (read_graph_file): Store to global vector of functions.
      	(read_count_file): Iterate the vector.
      	(process_file): Likewise.
      	(generate_results): Likewise.
      	(release_structures): Likewise.
      
      From-SVN: r254672
      Martin Liska committed
    • re PR tree-optimization/82954 (ICE in fold_binary_loc, at fold-const.c:9061) · 5bfd2f9b
      	PR tree-optimization/82954
      	* gimple-ssa-store-merging.c
      	(imm_store_chain_info::coalesce_immediate_stores): If
      	!infof->ops[N].base_addr, split group if info->ops[N].base_addr.
      
      	* gcc.c-torture/execute/pr82954.c: New test.
      
      From-SVN: r254671
      Jakub Jelinek committed
    • [AArch64] More aarch64_endian_lane_rtx · 441b4d0f
      r254466 failed to update some uses of ENDIAN_LANE_N that were added after
      the patch was initially written, which meant that we were treating the
      mode number as an element count.
      
      2017-11-13  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
      	Upddate call to ENDIAN_LANE_N.
      	(aarch64_<sur>dot_lane<vsi2qi>): Use aarch64_endian_lane_rtx.
      	(aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
      	(*aarch64_simd_vec_copy_lane<mode>): Update calls to ENDIAN_LANE_N
      	and use aarch64_endian_lane_rtx.
      	(*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
      
      From-SVN: r254670
      Richard Sandiford committed
    • Daily bump. · 41a0d8d4
      From-SVN: r254669
      GCC Administrator committed
  2. 12 Nov, 2017 4 commits
  3. 11 Nov, 2017 12 commits
  4. 10 Nov, 2017 16 commits
    • rs6000.md (bswaphi2_reg): On ISA 3.0 systems, enable generating XXBRH if the… · 4f58c0d1
      rs6000.md (bswaphi2_reg): On ISA 3.0 systems, enable generating XXBRH if the value is in a vector register.
      
      [gcc]
      2017-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000.md (bswaphi2_reg): On ISA 3.0 systems,
      	enable generating XXBRH if the value is in a vector register.
      	(bswapsi2_reg): On ISA 3.0 systems, enable generating XXBRW if the
      	value is in a vector register.
      	(bswapdi2_reg): On ISA 3.0 systems, always use XXBRD to do
      	register to register bswap64's instead of doing the GPR sequence
      	used on previous machines.
      	(bswapdi2_xxbrd): New insn.
      	(bswapdi2_reg): Disallow on ISA 3.0.
      	(register to register bswap64 splitter): Do not split the insn on
      	ISA 3.0 systems that use XXBRD.
      
      [gcc/testsuite]
      2017-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/p9-xxbr-3.c: New test.
      
      From-SVN: r254643
      Michael Meissner committed
    • Fix my last ChangeLog entry · d72b0a3f
      From-SVN: r254642
      Jeff Law committed
    • re PR c/81117 (Improve buffer overflow checking in strncpy) · 6e718159
      
      gcc/ChangeLog:
      
      	PR c/81117
      	* config/darwin-c.c (framework_construct_pathname): Replace strncpy
      	with memcpy.
      	(find_subframework_file): Same.
      
      From-SVN: r254641
      Martin Sebor committed
    • Add plugin API for processing plugin-added input files. · f382ac6d
      Gold plugins may wish to further process an input file added by a plugin. For
      example, the plugin may need to assign a unique segment for sections in a
      plugin-generated input file. This patch adds a plugin callback that the linker
      will call when reading symbols from a new input file added after the
      all_symbols_read event (i.e. an input file added by a plugin).
      
      2017-11-10  Stephen Crane <sjc@immunant.com>
      
      	* plugin-api.h: Add plugin API for processing plugin-added
      	input files.
      
      From-SVN: r254640
      Stephen Crane committed
    • vr-values.h (VR_INITIALIZER): Move #define here. · 16207ddd
      	* vr-values.h (VR_INITIALIZER): Move #define here.
      	* gimple-ssa-evrp.c: New file with contents extracted from tree-vrp.c
      	* Makefile.in (OBJS): Add tree-evrp.o
      	* tree-vrp.h (assert_info): Move structure definition here.
      	(set_value_range_to_varying): Prototype.
      	(vrp_operand_equal_p, range_includes_zero_p): Likewise.
      	(infer_value_range, register_edge_assert_for): Likewise.
      	(stmt_interesting_for_vrp): Likewise.
      	* tree-vrp.c: Move all methods for evrp class into tree-evrp.c.
      	(set_value_range_to_varying): No longer static.
      	(vrp_operand_equal_p, range_includes_zero_p): Likewise.
      	(infer_value_range, register_edge_assert_for): Likewise.
      
      From-SVN: r254639
      Jeff Law committed
    • PR libstdc++/82917 add missing returns in <fstream> · 54df5885
      	PR libstdc++/82917
      	* include/std/fstream (basic_ifstream::open, basic_ofstream::open)
      	(basic_fstream::open): Fix missing return.
      
      From-SVN: r254638
      Jonathan Wakely committed
    • auto-profile.c (afdo_indirect_call): Drop frequency. · 1bad9c18
      
      	* auto-profile.c (afdo_indirect_call): Drop frequency.
      	* cgraph.c (symbol_table::create_edge): Drop frequency argument.
      	(cgraph_node::create_edge): Drop frequency argument.
      	(cgraph_node::create_indirect_edge): Drop frequency argument.
      	(cgraph_edge::make_speculative): Drop frequency arguments.
      	(cgraph_edge::resolve_speculation): Do not update frequencies
      	(cgraph_edge::dump_edge_flags): Do not dump frequency.
      	(cgraph_node::dump): Check consistency in IPA mode.
      	(cgraph_edge::maybe_hot_p): Use IPA counter.
      	(cgraph_edge::verify_count_and_frequency): Rename to ...
      	(cgraph_edge::verify_count): ... this one; drop frequency checking.
      	(cgraph_node::verify_node): Update.
      	* cgraph.h (struct cgraph_edge): Drop frequency.
      	(cgraph_edge::frequency): New function.
      	* cgraphbuild.c (pass_build_cgraph_edges::execute): Donot pass
      	frequencies.
      	(cgraph_edge::rebuild_edges): Likewise.
      	* cgraphclones.c (cgraph_edge::clone): Scale only counts.
      	(duplicate_thunk_for_node): Do not pass frequency.
      	(cgraph_node::create_clone): Scale only counts.
      	(cgraph_node::create_virtual_clone): Do not pass frequency.
      	(cgraph_node::create_edge_including_clones): Do not pass frequency.
      	(cgraph_node::create_version_clone): Do not pass frequency.
      	* cgraphunit.c (cgraph_node::analyze): Do not pass frequency.
      	(cgraph_node::expand_thunk): Do not pass frequency.
      	(cgraph_node::create_wrapper): Do not pass frequency.
      	* gimple-iterator.c (update_call_edge_frequencies): Do not pass
      	frequency.
      	* gimple-streamer-in.c (input_bb): Scale only IPA counts.
      	* ipa-chkp.c (chkp_produce_thunks): Do not pass frequency.
      	* ipa-cp.c (ipcp_lattice::print): Use frequency function.
      	(gather_caller_stats): Use frequency function.
      	(ipcp_cloning_candidate_p): Use frequency function.
      	(ipcp_propagate_stage): Use frequency function.
      	(get_info_about_necessary_edges): Use frequency function.
      	(update_profiling_info): Update only IPA profile.
      	(update_specialized_profile): Use frequency functoin.
      	(perhaps_add_new_callers): Update only IPA profile.
      	* ipa-devirt.c (ipa_devirt): Use IPA profile.
      	* ipa-fnsummary.c (redirect_to_unreachable): Do not set frequrency.
      	(dump_ipa_call_summary): Use frequency function.
      	(estimate_edge_size_and_time): Use frequency function.
      	(ipa_merge_fn_summary_after_inlining): Use frequency function.
      	* ipa-inline-analysis.c (do_estimate_edge_time): Use IPA profile.
      	* ipa-inline-transform.c (update_noncloned_frequencies): Rename to ..
      	(update_noncloned_counts): ... ths one; scale counts only.
      	(clone_inlined_nodes): Do not scale frequency.
      	(inline_call): Do not pass frequency.
      	* ipa-inline.c (compute_uninlined_call_time): Use IPA profile.
      	(compute_inlined_call_time): Use IPA profile.
      	(want_inline_small_function_p): Use IPA profile.
      	(want_inline_self_recursive_call_p): Use IPA profile.
      	(edge_badness): Use IPA profile.
      	(lookup_recursive_calls): Use IPA profile.
      	(recursive_inlining): Do not pass frequency.
      	(resolve_noninline_speculation): Do not update frequency.
      	(inline_small_functions): Collect max of IPA profile.
      	(dump_overall_stats): Dump IPA porfile.
      	(dump_inline_stats): Dump IPA porfile.
      	(ipa_inline): Collect IPA stats.
      	* ipa-inline.h (clone_inlined_nodes): Update prototype.
      	* ipa-profile.c (ipa_propagate_frequency_1): Use frequency function.
      	(ipa_propagate_frequency): Use frequency function.
      	(ipa_profile): Cleanup.
      	* ipa-prop.c (ipa_make_edge_direct_to_target): Do not pass frequency
      	* ipa-utils.c (ipa_merge_profiles): Merge all profiles.
      	* lto-cgraph.c (lto_output_edge): Do not stream frequency.
      	(input_node): Do not stream frequency.
      	(input_edge): Do not stream frequency.
      	(merge_profile_summaries): Scale only IPA profiles.
      	* omp-simd-clone.c (simd_clone_adjust): Do not pass frequency.
      	* predict.c (drop_profile): Do not recompute frequency.
      	* trans-mem.c (ipa_tm_insert_irr_call): Do not pass frequency.
      	(ipa_tm_insert_gettmclone_call): Do not pass frequency.
      	* tree-cfg.c (execute_fixup_cfg): Drop profile to global0 if needed.
      	* tree-chkp.c (chkp_copy_bounds_for_assign): Do not pass frequency.
      	* tree-emutls.c (gen_emutls_addr): Do not pass frequency.
      	* tree-inline.c (copy_bb): Do not scale frequency.
      	(expand_call_inline): Do not scale frequency.
      	(tree_function_versioning): Do not scale frequency.
      	* ubsan.c (ubsan_create_edge): Do not pass frequency.
      
      lto/ChangeLog:
      
      2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
      
      	* lto-partition.c (lto_balanced_map): Use frequency accessor.
      
      From-SVN: r254636
      Jan Hubicka committed
    • force-indirect-call-1.c: Merge scan strings. · a0e6ac44
      	* gcc.target/i386/force-indirect-call-1.c: Merge scan strings.
      	* gcc.target/i386/force-indirect-call-2.c: Ditto.
      	Require fpic effective target.
      	* gcc.target/i386/force-indirect-call-3.c: Ditto.
      	Require lp64 effective target.
      
      From-SVN: r254635
      Uros Bizjak committed
    • GFNI enabling [3/4] · a76e0b43
      gcc/
      	 * config/i386/gfniintrin.h (_mm_gf2p8affine_epi64_epi8,
      	 _mm256_gf2p8affine_epi64_epi8, _mm_mask_gf2p8affine_epi64_epi8,
      	 _mm_maskz_gf2p8affine_epi64_epi8, _mm256_mask_gf2p8affine_epi64_epi8,
      	 _mm256_maskz_gf2p8affine_epi64_epi8,
      	 _mm512_mask_gf2p8affine_epi64_epi8, _mm512_gf2p8affine_epi64_epi8
      	 _mm512_maskz_gf2p8affine_epi64_epi8): New intrinsics.
      	 * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineqb_v64qi,
      	 __builtin_ia32_vgf2p8affineqb_v32qi,
      	 __builtin_ia32_vgf2p8affineqb_v16qi): New builtins.
      	 * config/i386/sse.md (vgf2p8affineqb_<mode><mask_name>): New pattern.
      gcc/testsuite/
      	 * gcc.target/i386/avx-1.c: Handle new intrinsics.
      	 * gcc.target/i386/avx512f-gf2p8affineqb-2.c: New runtime tests.
      	 * gcc.target/i386/avx512vl-gf2p8affineqb-2.c: Ditto.
      	 * gcc.target/i386/gfni-1.c: Add tests for GF2P8AFFINE.
      	 * gcc.target/i386/gfni-2.c: Ditto.
      	 * gcc.target/i386/gfni-3.c: Ditto.
      	 * gcc.target/i386/gfni-4.c: Ditto.
      	 * gcc.target/i386/sse-13.c: Handle new tests.
      	 * gcc.target/i386/sse-14.c: Handle new tests.
      	 * gcc.target/i386/sse-23.c: Handle new tests.
      
      From-SVN: r254634
      Julia Koval committed
    • [testsuite/ARM] Consolidate sources for cmse tests · 9e72bc90
      For the most part, testcases under gcc.target/arm/cmse/baseline and
      gcc.target/arm/cmse/mainline are duplicate copies with only different
      dejagnu directives. Although there is no requirement for them to be
      similar, having them both identical allow to compare the code generated
      and make it easier in case of change in code generation to both
      architecture to update the testcases (if one needs updating so does the
      other).
      
      Similarly all the tests in gcc.target/arm/cmse/mainline/<floatabi> have
      the same source but are duplicate copies.
      
      This patch moves all the code in the tests to a parent directory:
      gcc.target/arm/cmse for tests shared by Armv8-M Baseline and Mainline
      and gcc.target/arm/cmse/mainline for tests *only* shared by the various
      float ABI of Armv8-M Mainline. C includes are then used where the code
      used to sit.
      
      Note that the cmse-13.c test used to differ slightly between
      architectures and float ABI tested in the first floating-point constant
      passed to bar: sometimes 1.0 and sometimes 3.0. This patch settles on
      3.0 to not confuse with the 1.0 constant used to clear VFP registers in
      some of the configurations.
      
      2017-11-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/testsuite/
          * gcc.target/arm/cmse/bitfield-4.x: New file.
          * gcc.target/arm/cmse/baseline/bitfield-4.c: Remove code and include
          above file.
          * gcc.target/arm/cmse/mainline/bitfield-4.c: Likewise.
          * gcc.target/arm/cmse/bitfield-5.x: New file.
          * gcc.target/arm/cmse/baseline/bitfield-5.c: Remove code and include
          above file.
          * gcc.target/arm/cmse/mainline/bitfield-5.c: Likewise.
          * gcc.target/arm/cmse/bitfield-6.x: New file.
          * gcc.target/arm/cmse/baseline/bitfield-6.c: Remove code and include
          above file.
          * gcc.target/arm/cmse/mainline/bitfield-6.c: Likewise.
          * gcc.target/arm/cmse/bitfield-7.x: New file.
          * gcc.target/arm/cmse/baseline/bitfield-7.c: Remove code and include
          above file.
          * gcc.target/arm/cmse/mainline/bitfield-7.c: Likewise.
          * gcc.target/arm/cmse/bitfield-8.x: New file.
          * gcc.target/arm/cmse/baseline/bitfield-8.c: Remove code and include
          above file.
          * gcc.target/arm/cmse/mainline/bitfield-8.c: Likewise.
          * gcc.target/arm/cmse/bitfield-9.x: New file.
          * gcc.target/arm/cmse/baseline/bitfield-9.c: Remove code and include
          above file.
          * gcc.target/arm/cmse/mainline/bitfield-9.c: Likewise.
          * gcc.target/arm/cmse/bitfield-and-union.x: New file.
          * gcc.target/arm/cmse/baseline/bitfield-and-union-1.c: Rename into ...
          * gcc.target/arm/cmse/baseline/bitfield-and-union.c: This.  Remove code
          and include above bitfield-and-union.x file.
          * gcc.target/arm/cmse/mainline/bitfield-and-union-1.c: Rename into ...
          * gcc.target/arm/cmse/mainline/bitfield-and-union.c: this.  Remove code
          and include above bitfield-and-union.x file.
          * gcc.target/arm/cmse/cmse-13.x: New file.
          * gcc.target/arm/cmse/baseline/cmse-13.c: Remove code and include above
          file.
          * gcc.target/arm/cmse/mainline/hard-sp/cmse-13.c: Likewise.
          * gcc.target/arm/cmse/mainline/hard/cmse-13.c: Likewise.
          * gcc.target/arm/cmse/mainline/soft/cmse-13.c: Likewise.
          * gcc.target/arm/cmse/mainline/softfp/cmse-13.c: Likewise.
          * gcc.target/arm/cmse/cmse-5.x: New file.
          * gcc.target/arm/cmse/mainline/hard-sp/cmse-5.c: Remove code and
          include above file.
          * gcc.target/arm/cmse/mainline/hard/cmse-5.c: Likewise.
          * gcc.target/arm/cmse/mainline/soft/cmse-5.c: Likewise.
          * gcc.target/arm/cmse/mainline/softfp-sp/cmse-5.c: Likewise.
          * gcc.target/arm/cmse/mainline/softfp/cmse-5.c: Likewise.
          * gcc.target/arm/cmse/cmse-7.x: New file.
          * gcc.target/arm/cmse/mainline/hard-sp/cmse-7.c: Remove code and
          include above file.
          * gcc.target/arm/cmse/mainline/hard/cmse-7.c: Likewise.
          * gcc.target/arm/cmse/mainline/soft/cmse-7.c: Likewise.
          * gcc.target/arm/cmse/mainline/softfp-sp/cmse-7.c: Likewise.
          * gcc.target/arm/cmse/mainline/softfp/cmse-7.c: Likewise.
          * gcc.target/arm/cmse/cmse-8.x: New file.
          * gcc.target/arm/cmse/mainline/hard-sp/cmse-8.c: Remove code and
          include above file.
          * gcc.target/arm/cmse/mainline/hard/cmse-8.c: Likewise.
          * gcc.target/arm/cmse/mainline/soft/cmse-8.c: Likewise.
          * gcc.target/arm/cmse/mainline/softfp-sp/cmse-8.c: Likewise.
          * gcc.target/arm/cmse/mainline/softfp/cmse-8.c: Likewise.
          * gcc.target/arm/cmse/union-1.x: New file.
          * gcc.target/arm/cmse/baseline/union-1.c: Remove code and include above
          file.
          * gcc.target/arm/cmse/mainline/union-1.c: Likewise.
          * gcc.target/arm/cmse/union-2.x: New file.
          * gcc.target/arm/cmse/baseline/union-2.c: Remove code and include above
          file.
          * gcc.target/arm/cmse/mainline/union-2.c: Likewise.
      
      From-SVN: r254633
      Thomas Preud'homme committed
    • re PR target/82641 (Unable to enable crc32 for a certain function with target… · 008a11cc
      re PR target/82641 (Unable to enable crc32 for a certain function with target attribute on ARM (aarch32))
      
      2017-11-10  Tamar Christina  <tamar.christina@arm.com>
      
      	PR target/82641
      	* config/arm/arm.c
      	(arm_option_override): Refactor.
      	(arm_option_reconfigure_globals): New.
      	(arm_options_perform_arch_sanity_checks): New.
      	* config/arm/arm-protos.h (arm_option_reconfigure_globals): New prototype.
      	(arm_options_perform_arch_sanity_checks): Likewise
      
      From-SVN: r254632
      Tamar Christina committed
    • power9.md (power9-qpdiv): Correct DFU pipe usage. · cd764269
      	* rs6000/power9.md (power9-qpdiv): Correct DFU pipe usage.
      	(power9-qpmul): New.
      	* rs6000/rs6000.md ("type" attr): Add qmul.
      	(mul<mode>3, fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw,
      	*nfms<mode>4_hw, mul<mode>3_odd, fma<mode>4_odd, *fms<mode>4_odd,
      	*nfma<mode>4_odd, *nfms<mode>4_odd): Change type to qmul.
      
      From-SVN: r254631
      Pat Haugen committed
    • PR c/81117 - Improve buffer overflow checking in strncpy · 025d57f0
      gcc/ChangeLog:
      
      	PR c/81117
      	* builtins.c (compute_objsize): Handle arrays that
      	compute_builtin_object_size likes to fail for.  Make extern.
      	* builtins.h (compute_objsize): Declare.
      	(check_strncpy_sizes): New function.
      	(expand_builtin_strncpy): Call check_strncpy_sizes.
      	* gimple-fold.c (gimple_fold_builtin_strncpy): Implement
      	-Wstringop-truncation.
      	(gimple_fold_builtin_strncat): Same.
      	* gimple.c (gimple_build_call_from_tree): Set call location.
      	* tree-ssa-strlen.c (strlen_to_stridx): New global variable.
      	(maybe_diag_bound_equal_length, is_strlen_related_p): New functions.
      	(handle_builtin_stxncpy, handle_builtin_strncat): Same.
      	(handle_builtin_strlen): Use strlen_to_stridx.
      	(strlen_optimize_stmt): Handle flavors of strncat, strncpy, and
      	stpncpy.
      	Use strlen_to_stridx.
      	(pass_strlen::execute): Release strlen_to_stridx.
      	* doc/invoke.texi (-Wsizeof-pointer-memaccess): Document enhancement.
      	(-Wstringop-truncation): Document new option.
      
      gcc/ada/ChangeLog:
      
      	PR c/81117
      	* ada/adadecode.c (__gnat_decode): Use memcpy instead of strncpy.
      	* ada/argv.c (__gnat_fill_arg, __gnat_fill_env): Same.
      
      gcc/c-family/ChangeLog:
      
      	PR c/81117
      	* c-common.c (catenate_strings): Use memcpy instead of strncpy.
      	* c-warn.c (sizeof_pointer_memaccess_warning): Handle arrays.
      	* c.opt (-Wstringop-truncation): New option.
      
      gcc/fortran/ChangeLog:
      
      	PR c/81117
      	* gcc/fortran/decl.c (build_sym): Use strcpy instead of strncpy.
      
      gcc/objc/ChangeLog:
      
      	PR c/81117
      	* objc-encoding.c (encode_type): Use memcpy instead of strncpy.
      
      gcc/testsuite/ChangeLog:
      
      	PR c/81117
      	* c-c++-common/Wsizeof-pointer-memaccess3.c: New test.
      	* c-c++-common/Wstringop-overflow.c: Same.
      	* c-c++-common/Wstringop-truncation.c: Same.
      	* c-c++-common/Wsizeof-pointer-memaccess2.c: Adjust.
      	* c-c++-common/attr-nonstring-2.c: New test.
      	* g++.dg/torture/Wsizeof-pointer-memaccess1.C: Adjust.
      	* g++.dg/torture/Wsizeof-pointer-memaccess2.C: Same.
      	* gcc.dg/torture/pr63554.c: Same.
      	* gcc.dg/Walloca-1.c: Disable macro tracking.
      
      From-SVN: r254630
      Martin Sebor committed
    • GCOV: create one intermediate file per a gcno file (PR gcov-profile/82702). · e89ce41d
      2017-11-10  Martin Liska  <mliska@suse.cz>
      
      	PR gcov-profile/82702
      	* gcov.c (main): Handle intermediate files in a different
      	way.
      	(get_gcov_intermediate_filename): New function.
      	(output_gcov_file): Remove support of intermediate files.
      	(generate_results): Allocate intermediate file.
      	(release_structures): Clean-up properly fn_end.
      	(output_intermediate_file): Start iterating with line 1.
      
      From-SVN: r254629
      Martin Liska committed
    • re PR tree-optimization/82929 (r254579 causes ICE: tree check: expected… · 127ef369
      re PR tree-optimization/82929 (r254579 causes ICE: tree check: expected ssa_name, have array_ref in has_single_use, at ssa-iterators.h:400)
      
      	PR tree-optimization/82929
      	* gimple-ssa-store-merging.c (struct store_immediate_info): Add
      	ops_swapped_p non-static data member.
      	(store_immediate_info::store_immediate_info): Clear it.
      	(imm_store_chain_info::coalesce_immediate_stores): If swapping
      	ops set ops_swapped_p.
      	(count_multiple_uses): Handle ops_swapped_p.
      
      	* gcc.dg/pr82929.c: New test.
      	* g++.dg/opt/pr82929.C: New test.
      
      From-SVN: r254628
      Jakub Jelinek committed
    • GCOV: do not support unexecuted blocks in Ada · 93814e2d
      2017-11-10  Martin Liska  <mliska@suse.cz>
      
      	* coverage.c (coverage_init): Stream information about
      	support of has_unexecuted_blocks.
      	* doc/gcov.texi: Document that.
      	* gcov-dump.c (dump_gcov_file): Support it in gcov_dump tool.
      	* gcov.c (read_graph_file): Likewise.
      	(output_line_beginning): Fix a small issue with
      	color output.
      
      From-SVN: r254627
      Martin Liska committed