1. 10 Dec, 2019 39 commits
    • re PR rtl-optimization/92796 (ICE in lra_assign, at lra-assigns.c:1646 on powerpc64le-linux-gnu) · 7436a1c6
      2019-12-10  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/92796
      	* lra-int.h (lra_risky_transformations_p): Rename to
      	check_and_force_assignment_correctness_p.
      	* lra-assigns.c: Ditto.
      	(lra_assign): Reset check_and_force_assignment_correctness_p.
      	* lra-constraints.c (lra_risky_transformations_p): Rename to
      	check_and_force_assignment_correctness_p.
      	(lra_constraints): Set up check_and_force_assignment_correctness_p
      	only for the 1st sub-pass.
      	* lra-eliminations.c (process_insn_for_elimination): Set up
      	check_and_force_assignment_correctness_p if the insn chnaged its
      	code.
      
      2019-12-10  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/92796
      	* gcc.target/powerpc/pr92796.c: New test.
      
      From-SVN: r279204
      Vladimir Makarov committed
    • re PR fortran/91643 (ICE in gfc_trans_create_temp_array, at fortran/trans-array.c:1265) · 0cc063af
      2019-12-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR fortran/91643
          * trans-array.c (gfc_conv_array_parameter): Do not repack
          an assumed rank dummy argument.
      
      2019-12-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR fortran/91643
          * gfortran.dg/assumed_rank_18.f90: New test.
      
      From-SVN: r279203
      Thomas Koenig committed
    • libstdc++: Rework std::copy/copy_backward/move/move_backward/fill/fill_n algos · 6004c17b
      Enhance those algos overloads to generalize existing optimization for
      __gnu_debug::_Safe_iterator w/o _GLIBCXX_DEBUG mode and for std::deque
       iterators.
      
      Also extend __copy_move_a2 ostreambuf_iterator overloads to std::vector and
      std::deque iterators.
      
      	* include/bits/stl_algobase.h
      	(__copy_move_a1<>(_II, _II, _OI)): New.
      	(__copy_move_a1<>(_Deque_iterator<>, _Deque_iterator<>, _OI)): New.
      	(__copy_move_a1<>(_Deque_iterator<>, _Deque_iterator<>,
      	_Deque_iterator<>)): New.
      	(__copy_move_a1<>(_II, _II, _Deque_iterator<>)): New.
      	(__copy_move_a<>(_II, _II, _OI)): Adapt, call __copy_move_a1<>.
      	(__copy_move_a<>(const _Safe_iterator<>&, const _Safe_iterator<>&,
      	_OI)): New.
      	(__copy_move_a<>(const _Safe_iterator<>&, const _Safe_iterator<>&,
      	 const _Safe_iterator<>&)): New.
      	(__copy_move_a<>(_II, _II, const _Safe_iterator<>&)): New.
      	(copy, move): Adapt, call __copy_move_a.
      	(__copy_move_backward_a1<>(_II, _II, _OI)): New,
      	call __copy_move_backward_a2.
      	(__copy_move_backward_a1<>(_Deque_iterator<>, _Deque_iterator<>, _OI)): New.
      	(__copy_move_backward_a1<>(_Deque_iterator<>, _Deque_iterator<>,
      	_Deque_iterator<>)): New.
      	(__copy_move_backward_a1<>(_II, _II, _Deque_iterator<>)): New.
      	(__copy_move_backward_a<>(_II, _II, _OI)): Adapt, call
      	__copy_move_backward_a1<>.
      	(__copy_move_backward_a<>(const _Safe_iterator<>&, const _Safe_iterator<>&,
      	_OI)): New.
      	(__copy_move_backward_a<>(const _Safe_iterator<>&, const _Safe_iterator<>&,
      	 const _Safe_iterator<>&)): New.
      	(__copy_move_backward_a<>(_II, _II, const _Safe_iterator<>&)): New.
      	(copy_backward, move_backward): Adapt, call __copy_move_backward_a<>.
      	(__fill_a): Rename into...
      	(__fill_a1): ... this.
      	(__fill_a1(__normal_iterator<>, __normal_iterator<>, const _Tp&)): New.
      	(__fill_a1(const _Deque_iterator<>&, const _Deque_iterator<>&, _VTp)):
      	New.
      	(__fill_a(_FIte, _FIte, const _Tp&)): New, call __fill_a1.
      	(__fill_a(const _Safe_iterator<>&, const _Safe_iterator<>&,
      	const _Tp&)): New.
      	(fill): Adapt, remove __niter_base usage.
      	(__fill_n_a): Rename into...
      	(__fill_n_a1): ...this.
      	(__fill_n_a(const _Safe_iterator<>&, _Size, const _Tp&,
      	input_iterator_tag)): New.
      	(__fill_n_a(_OI, _Size, const _Tp&, output_iterator_tag)): New, call
      	__fill_n_a1.
      	(__fill_n_a(_OI, _Size, const _Tp&, random_access_iterator_tag)): New,
      	call __fill_a.
      	(__equal_aux): Rename into...
      	(__equal_aux1): ...this.
      	(__equal_aux1(_Deque_iterator<>, _Deque_iterator<>, _OI)): New.
      	(__equal_aux1(_Deque_iterator<>, _Deque_iterator<>,
      	_Deque_iterator<>)): New.
      	(__equal_aux1(_II, _II, _Deque_iterator<>)): New.
      	(__equal_aux(_II1, _II1, _II2)): New, call __equal_aux1.
      	(__equal_aux(const _Safe_iterator<>&, const _Safe_iterator<>&,
      	_OI)): New.
      	(__equal_aux(const _Safe_iterator<>&, const _Safe_iterator<>&,
      	 const _Safe_iterator<>&)): New.
      	(__equal_aux(_II, _II, const _Safe_iterator<>&)): New.
      	(equal(_II1, _II1, _II2)): Adapt.
      	* include/bits/stl_deque.h
      	(fill, copy, copy_backward, move, move_backward): Remove.
      	* include/bits/deque.tcc: Include <bits/stl_algobase.h>.
      	(__fill_a1): New.
      	(__copy_move_dit): New.
      	(__copy_move_a1): New, use latter.
      	(__copy_move_a1(_II, _II, _Deque_iterator<>)): New.
      	(__copy_move_backward_dit): New.
      	(__copy_move_backward_a1): New, use latter.
      	(__copy_move_backward_a1(_II, _II, _Deque_iterator<>)): New.
      	(__equal_dit): New.
      	(__equal_aux1): New, use latter.
      	(__equal_aux1(_II, _II, _Deque_iterator<>)): New.
      	* include/std/numeric (__is_random_access_iter): Move...
      	* include/bits/stl_iterator_base_types.h (__is_random_access_iter): ...
      	here. Provide pre-C++11 definition.
      	* include/debug/debug.h (_Safe_iterator<>): New declaration.
      	* include/debug/safe_iterator.h (_Safe_iterator<>::_M_can_advance): Add
      	__strict parameter.
      	* include/debug/safe_iterator.tcc: Include <bits/stl_algobase.h>.
      	(_Safe_iterator<>::_M_can_advance): Adapt.
      	(std::__copy_move_a, std::__copy_move_backward_a, __fill_a): New.
      	(__fill_n_a, __equal_aux): New.
      	* include/debug/stl_iterator.h (__niter_base): Remove.
      	* include/debug/vector (__niter_base): Remove.
      	* testsuite/performance/25_algorithms/copy_backward_deque_iterators.cc:
      	Include <vector> and <list>. Add benches.
      	* testsuite/performance/25_algorithms/copy_deque_iterators.cc: Likewise.
      	* testsuite/performance/25_algorithms/equal_deque_iterators.cc: Likewise.
      	* testsuite/25_algorithms/copy/debug/1_neg.cc: New.
      	* testsuite/25_algorithms/copy/deque_iterators/2.cc: New.
      	* testsuite/25_algorithms/copy/deque_iterators/31.cc: New.
      	* testsuite/25_algorithms/copy/deque_iterators/32.cc: New.
      	* testsuite/25_algorithms/copy/deque_iterators/33.cc: New.
      	* testsuite/25_algorithms/copy/deque_iterators/41.cc: New.
      	* testsuite/25_algorithms/copy/deque_iterators/42.cc: New.
      	* testsuite/25_algorithms/copy/deque_iterators/43.cc: New.
      	* testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc (test02):
      	New.
      	* testsuite/25_algorithms/copy_backward/deque_iterators/2.cc: New.
      	* testsuite/25_algorithms/equal/deque_iterators/1.cc: New.
      	* testsuite/25_algorithms/fill/deque_iterators/1.cc: New.
      	* testsuite/25_algorithms/move/deque_iterators/2.cc: New.
      	* testsuite/25_algorithms/move_backward/deque_iterators/2.cc: New.
      
      From-SVN: r279201
      François Dumont committed
    • re PR rtl-optimization/92882 (ICE in regstat_bb_compute_calls_crossed, at… · 5e72bcc1
      re PR rtl-optimization/92882 (ICE in regstat_bb_compute_calls_crossed, at regstat.c:327 since r279124)
      
      	PR rtl-optimization/92882
      	* regstat.c (regstat_bb_compute_calls_crossed): Don't check
      	INSN_UID against DF_INSN_SIZE or use DF_INSN_INFO_GET unless
      	NONDEBUG_INSN_P.
      
      	* gfortran.dg/pr92882.f: New test.
      
      From-SVN: r279196
      Jakub Jelinek committed
    • re PR ipa/92883 (ICE in compare_values_warnv) · 27f418b8
      	PR ipa/92883
      	* ipa-cp.c (propagate_vr_across_jump_function): Pass jvr rather
      	than *jfunc->m_vr to intersect.  Formatting fix.
      
      	* gcc.dg/ipa/pr92883.c: New test.
      
      From-SVN: r279194
      Jakub Jelinek committed
    • re PR middle-end/92825 (Unnecesary stack protection in Firefox's LightPixel.) · 6b24e342
      	PR middle-end/92825
      	* cfgexpand.c (add_stack_protection_conflicts): Change return type
      	from void to bool, return true if at least one stack_vars[i].decl
      	is addressable.
      	(record_or_union_type_has_array_p, stack_protect_decl_p): Remove.
      	(expand_used_vars): Don't call stack_protect_decl_p, instead for
      	-fstack-protector-strong set gen_stack_protect_signal to true
      	if add_stack_protection_conflicts returned true.  Formatting fixes.
      	* doc/invoke.texi (-fstack-protector-strong): Clarify that optimized
      	out variables or variables not living on the stack don't count.
      	(-fstack-protector): Likewise.  Clarify it affects >= 8 byte arrays
      	rather than > 8 byte.
      
      	* gcc.target/i386/pr92825.c: New test.
      
      From-SVN: r279193
      Jakub Jelinek committed
    • * ipa-param-manipulation.c · 6b6a8065
      	(ipa_param_body_adjustments::register_replacement): Fix comment typo
      	- accross -> across.
      	* ipa-sra.c (propagate_used_across_scc_edge, ipa_sra_analysis):
      	Likewise.
      	(param_splitting_across_edge): Fix typo in dump message - accross
      	-> across.
      
      From-SVN: r279188
      Jakub Jelinek committed
    • PR c++/92847 - C++20 comparison ambiguity with class template. · eff66cd2
      This testcase demonstrates that looking at cand->template_decl is not a good
      starting place for finding the most general template, as it is only set for
      primary templates.
      
      	* call.c (cand_parms_match): Handle all templated functions.
      
      From-SVN: r279185
      Jason Merrill committed
    • Fix C++20 structural type vs. private base. · 09b661ce
      In my patch to implement C++20 "structural type" I tried to set the access
      flags on the artificial base fields appropriately, but failed.  I was
      copying TREE_PRIVATE from the binfo, but TREE_PRIVATE on binfo is just a
      temporary cache for dfs_access_in_type; we really need to get the
      inheritance access information from BINFO_BASE_ACCESSES.
      
      	* class.c (build_base_field_1): Take access parameter.
      	(build_base_field): Likewise.
      	(build_base_fields, layout_virtual_bases): Pass it.
      	* tree.c (structural_type_p): Improve private base diagnostic.
      
      From-SVN: r279184
      Jason Merrill committed
    • PR c++/92560 - ICE with decltype and rewritten operator. · 1fb81d83
      A call as the immediate operand of decltype is handled differently; we don't
      create an object of the return type as we do normally.  But in the case of a
      rewritten operator, we're adding another call as a wrapper, so the inner
      call doesn't get the special handling.
      
      	* call.c (build_new_op_1): Clear tf_decltype on inner call.
      
      From-SVN: r279183
      Jason Merrill committed
    • Bail out in gfc_dep_compare_expr for a NULL argument. · 42aed357
      2019-12-10  Martin Liska  <mliska@suse.cz>
      
      	PR fortran/92874
      	* dependency.c (gfc_dep_compare_expr): Bail out
      	when one of the arguments is null.
      2019-12-10  Martin Liska  <mliska@suse.cz>
      
      	PR fortran/92874
      	* gfortran.dg/pr92874.f90: New test.
      
      From-SVN: r279181
      Martin Liska committed
    • re PR fortran/92863 (ICE in gfc_typename) · f812dfe8
      2019-12-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR fortran/92863
          * misc.c (gfc_typename): If derived component is NULL for
          derived or class, return "invalid type" or "invalid class",
          respectively.
      
      2019-12-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR fortran/92863
          * gfortran.dg/interface_45.f90: New test.
      
      From-SVN: r279180
      Thomas Koenig committed
    • cgraph.c (cgraph_node::verify_node): Verify tp_first_run. · 940317b7
      
      	* cgraph.c (cgraph_node::verify_node): Verify tp_first_run.
      	* cgraph.h (cgrpah_node): Turn tp_first_run back to int.
      	* cgraphunit.c (tp_first_run_node_cmp): Do not watch for overflows.
      	(expand_all_functions): First expand ordered section and then
      	unordered.
      	* profile.c (compute_value_histograms): Error on out of range
      	tp_first_runs.
      
      From-SVN: r279179
      Jan Hubicka committed
    • Turn tp_first_run counts back to 32bit values. · 59c7b29e
      	* cgraph.c (cgraph_node::verify_node): Verify tp_first_run.
      	* cgraph.h (cgrpah_node): Turn tp_first_run back to int.
      	* cgraphunit.c (tp_first_run_node_cmp): Do not watch for overflows.
      	(expand_all_functions): First expand ordered section and then
      	unordered.
      	* lto-partition.c (lto_balanced_map): Fix printing of tp_first_run.
      	* profile.c (compute_value_histograms): Error on out of range
      	tp_first_runs.
      
      From-SVN: r279178
      Jan Hubicka committed
    • predict.c (compute_function_frequency): Check for presence of IPA profile. · 06656427
      	* predict.c (compute_function_frequency): Check for presence of IPA
      	profile.
      
      From-SVN: r279177
      Jan Hubicka committed
    • varasm.c (default_function_section): Fix confused tests for tp_first_run reordering. · 12651dc6
      	* varasm.c (default_function_section): Fix confused tests for
      	tp_first_run reordering.
      
      From-SVN: r279176
      Jan Hubicka committed
    • libstdc++: Fix description of std::ios::trunc (PR 92886) · 91fd16a7
      	PR libstdc++/92886
      	* include/bits/ios_base.h (std::ios_base::trunc): Fix comment.
      
      From-SVN: r279175
      Jonathan Wakely committed
    • [AArch64] Don't allow partial SVE modes in GPRs · aa1a2795
      With -msve-vector-bits=N, the payload of some partial SVE modes can
      be 16 bytes or smaller, which makes them small enough to fit in a
      pair of GPRs.  We specifically don't want that, because the payload
      is distributed evenly across the SVE register rather than collected
      at one end.  Marshalling it into a GPR via register operations would
      be expensive.
      
      2019-12-10  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Don't
      	allow SVE modes in GPRs.
      
      gcc/testsuite/
      	* gcc.target/aarch64/sve/mixed_size_7.c: New test.
      
      From-SVN: r279174
      Richard Sandiford committed
    • [AArch64] Fix INDEX patterns for partial VNx2 modes · 30f8bf3d
      The INDEX patterns handle partial modes by choosing the container
      size rather than the element size, so that the number of lanes
      (and thus number of additions) matches the mode.  This means that
      all VNx4 modes use .s and all VNx2 modes use .d, etc.
      
      When adding this, I'd forgotten that the choice between Wn and Xn
      registers would need to be updated to use the container size too.
      For partial VNx2s, we were using .d containers with Wn rather than
      Xn source registers.
      
      2019-12-10  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* config/aarch64/iterators.md (vccore): New iterator.
      	* config/aarch64/aarch64-sve.md (vec_series<mode>): Use it instead
      	of vwcore.
      	(*vec_series<mode>_plus): Likewise.
      
      gcc/testsuite/
      	* gcc.target/aarch64/sve/mixed_size_6.c: New test.
      
      From-SVN: r279173
      Richard Sandiford committed
    • libstdc++: Define __cpp_lib_constexpr_complex macro · 393283b8
      This is LWG issue 3349.
      
      	* include/std/complex (__cpp_lib_constexpr_complex): Define.
      	* include/std/version (__cpp_lib_constexpr_complex): Likewise.
      	* testsuite/26_numerics/complex/1.cc: New test.
      	* testsuite/26_numerics/complex/2.cc: New test.
      
      From-SVN: r279172
      Jonathan Wakely committed
    • libstdc++: Reduce header dependencies in <span> · b65bdd27
      	* include/std/span: Do not include <tuple> and <utility>.
      	(tuple_size, tuple_element): Declare.
      
      From-SVN: r279171
      Jonathan Wakely committed
    • libstdc++: Fix bug in std::indirect_result_t · 990a09e4
      The alias template wasn't working because it applied iter_reference_t to
      the pack of iterators before and after passing the pack to the
      __indeirect_result helper.
      
      	* include/bits/iterator_concepts.h (indirect_result_t): Do not apply
      	iter_reference_t to parameter pack.
      	* testsuite/24_iterators/indirect_callable/projected.cc: New test.
      
      From-SVN: r279170
      Jonathan Wakely committed
    • Add tests to verify OpenACC clause locations · d0d0ba20
      Check that the column information for OpenACC clauses is communicated correctly
      to the middle-end, in particular by the Fortran front-end (cf. PR 92793).
      
      2019-12-10  Frederik Harwath  <frederik@codesourcery.com>
      
      gcc/testsuite/
      	* c-c++-common/goacc/clause-locations.c: New test.
      	* gfortran.dg/goacc/clause-locations.f90: New test.
      
      From-SVN: r279169
      Frederik Harwath committed
    • Use clause locations in OpenACC nested reduction warnings · 64c5157f
      Since the Fortran front-end now sets the clause locations correctly, we can
      emit warnings with more precise locations if we encounter conflicting
      operations for a variable in reduction clauses.
      
      2019-12-10  Frederik Harwath  <frederik@codesourcery.com>
      
      gcc/
      	* omp-low.c (scan_omp_for): Use clause location in warning.
      
      From-SVN: r279168
      Frederik Harwath committed
    • Add myself to MAINTAINERS file. · 53eb0cb3
      2019-12-10  Lewis Hyatt  <lhyatt@gmail.com>
      
              * MAINTAINERS (Write After Approval): Add myself.
      
      From-SVN: r279167
      Lewis Hyatt committed
    • Make dwarf2out punt for MODE_VECTOR_BOOL · b78d005e
      The dwarf2 handling of vector constants currently divides the vector
      into a length (number of elements) and byte element size.  This doesn't
      work well for MODE_VECTOR_BOOL, where several elements are packed into
      the same byte.
      
      We should probably add a way of encoding this in future, but for now
      the safest thing is to punt, like we already do for variable-length
      vectors.
      
      2019-12-10  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* dwarf2out.c (loc_descriptor): Punt for MODE_VECTOR_BOOL.
      	(add_const_value_attribute): Likewise.
      
      gcc/testsuite/
      	* gcc.target/aarch64/sve/acle/general/debug_4.c: New test.
      
      From-SVN: r279165
      Richard Sandiford committed
    • Add missing conversion in vect_create_epilog_for_reduction · b78500ec
      The direct_slp_reduc code in vect_create_epilog_for_reduction was
      still assuming that all types involved in a reduction are the same
      (up to types_compatible_p), whereas we now support differences in
      sign.  This was causing an ICE in gcc.dg/vect/pr92324-4.c for SVE.
      
      2019-12-10  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-vect-loop.c (vect_create_epilog_for_reduction): When
      	handling direct_slp_reduc, allow the PHI arguments to have
      	a different type from the vector elements.
      
      From-SVN: r279164
      Richard Sandiford committed
    • Record the loop masks needed for EXTRACT_LAST_REDUCTIONs · f1c13d6d
      The analysis phase of vectorizable_condition wasn't recording the
      loop masks needed by the transform phase.  This meant that the masks
      wouldn't be created in the (rare) case that no other statement needed
      them.
      
      2019-12-10  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-vect-stmts.c (vectorizable_condition): Record the loop
      	masks required for extract-last reductions.
      
      gcc/testsuite/
      	* gcc.target/aarch64/sve/clastb_9.c: New test.
      
      From-SVN: r279163
      Richard Sandiford committed
    • Fix EXTRACT_LAST_REDUCTION handling of pattern stmts · 9ec35478
      Unlike most vector ops, extract-last reductions replace the original
      scalar code in-situ rather than adding an adjacent vector implementation.
      I.e.:
      
         dest_1 = COND_EXPR <...>;
      
      becomes:
      
         dest_1 = .EXTRACT_LAST (...);
      
      gcc.dg/vect/vect-cond-reduc-4.c was ICEing for SVE because we tried
      to replace the pattern statement in this way, rather than replacing
      the original scalar statement.
      
      2019-12-10  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-vect-stmts.c (vect_finish_replace_stmt): Always use the
      	original scalar statement rather than a pattern statement.
      	(vectorizable_condition): Likewise, in the handling of extract-last
      	reductions.
      
      From-SVN: r279162
      Richard Sandiford committed
    • Disallow EXTRACT_LAST_REDUCTION for reduction chains · ca49c831
      gcc.dg/vect/vect-cond-reduc-5.c was ICEing for SVE because we
      tried to use an extract-last reduction for a chain of COND_EXPRs.
      Adding support for the chained case would be too invasive for stage 3
      so this patch explicitly forbids it instead.  I've filed PR92884 for
      the possible future work.
      
      2019-12-10  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-vect-loop.c (vectorizable_reduction): Don't use
      	EXTRACT_LAST_REDUCTION for chained reductions.
      
      From-SVN: r279161
      Richard Sandiford committed
    • Fortran] PR 92872 – Fix get_CFI_desc · 9995ce07
              PR fortran/92872
              * trans-array.c (get_CFI_desc): Fix cond whether saved desc exists.
      
              PR fortran/92872
              * gfortran.dg/bind_c_optional-1.f90: New.
      
      From-SVN: r279160
      Tobias Burnus committed
    • Check for TYPE_DECL in get_odr_name_for_type · c175aa77
      Make get_odr_name_for_type check for TYPE_DECL in the way that
      its caller warn_types_mismatch previously did.
      
      2019-12-10  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* ipa-utils.h (get_odr_name_for_type): Check for a TYPE_DECL.
      	* ipa-devirt.c (warn_types_mismatch): Don't call xstrdup for the
      	second demangled name.
      
      gcc/testsuite/
      	* gcc.dg/lto/tag-1_0.c, gcc.dg/lto/tag-1_1.c: New test.
      
      From-SVN: r279159
      Richard Sandiford committed
    • avx512f-vmovntpd-2.c: Ensure res is 64-byte aligned. · 8cf23a6f
      	* gcc.target/i386/avx512f-vmovntpd-2.c: Ensure res is 64-byte aligned.
      	* gcc.target/i386/avx512f-vmovntps-2.c: Likewise.
      
      From-SVN: r279158
      Jakub Jelinek committed
    • * config/i386/i386.c (IX86_LEA_PRIORITY): Fix comment typos. · 2eb05061
      From-SVN: r279157
      Jakub Jelinek committed
    • Fix typos in 2 functions. · 52dc9c32
      2019-12-10  Martin Liska  <mliska@suse.cz>
      
      	PR tree-optimization/92862
      	* predict.c (predict_paths_leading_to_edge): Fix typo from e to e2.
      	* tree-ssa-loop-niter.c (loop_only_exit_p): Return false
      	instead of true;
      
      From-SVN: r279156
      Martin Liska committed
    • libbacktrace: remove duplicate low_pc/high_pc/range handling · 4b3fc188
      	* dwarf.c (struct pcrange): Define.
      	(update_pcrange, add_ranges): New static functions.
      	(add_unit_addr): Change signature to work with add_ranges.  Don't
      	add base_address here.
      	(add_unit_ranges): Remove.
      	(find_address_ranges): Replace str/ranges parameters with
      	dwarf_sections.  Use update_pcrange and add_ranges.  Change all
      	callers.
      	(add_function_range): Change signature to work with add_ranges.
      	Don't add base_address here.
      	(add_function_ranges): Remove.
      	(read_function_entry): Use update_pcrange and add_ranges.
      
      From-SVN: r279154
      Ian Lance Taylor committed
    • Replace label_text ctor with "borrow" and "take" · d68f5d45
      libcpp's label_text class wraps a text buffer, along with a flag to
      determine if it "owns" the buffer.
      
      The existing ctor exposed this directly, but I found it difficult
      to remember the sense of flag, so this patch hides the ctor, in
      favor of static member functions "borrow" and "take", to make
      the effect on ownership explicit in the name.
      
      gcc/c-family/ChangeLog:
      	* c-format.c (range_label_for_format_type_mismatch::get_text):
      	Replace label_text ctor called with true with label_text::take.
      
      gcc/c/ChangeLog:
      	* c-objc-common.c (range_label_for_type_mismatch::get_text):
      	Replace label_text ctor calls.
      
      gcc/cp/ChangeLog:
      	* error.c (range_label_for_type_mismatch::get_text): Replace
      	label_text ctor calls with label_text::borrow.
      
      gcc/ChangeLog:
      	* gcc-rich-location.c
      	(maybe_range_label_for_tree_type_mismatch::get_text): Replace
      	label_text ctor call with label_text::borrow.
      	* gcc-rich-location.h (text_range_label::get_text): Replace
      	label_text ctor called with false with label_text::borrow.
      
      libcpp/ChangeLog:
      	* include/line-map.h (label_text::label_text): Make private.
      	(label_text::borrow): New.
      	(label_text::take): New.
      	(label_text::take_or_copy): New.
      
      From-SVN: r279153
      David Malcolm committed
    • diagnostic_show_locus: move initial newline to callers · d3e28653
      diagnostic_show_locus adds a newline before doing anything (including
      the do-nothing-else case).
      
      This patch removes this initial newline, adding it to all callers
      of diagnostic_show_locus instead.
      
      Doing so makes diagnostic_show_locus more flexible, allowing it to be
      used in my analyzer patch kit for printing diagnostic paths.
      
      gcc/c-family/ChangeLog:
      	* c-format.c (selftest::test_type_mismatch_range_labels): Remove
      	initial newline from expected outputs.
      	* c-opts.c (c_diagnostic_finalizer): Add pp_newline call before
      	call to diagnostic_show_locus.
      
      gcc/ChangeLog:
      	* diagnostic-show-locus.c (diagnostic_show_locus): Remove initial
      	newline.
      	(selftest::test_diagnostic_show_locus_unknown_location): Remove
      	initial newline from expected outputs.
      	(selftest::test_one_liner_simple_caret): Likewise.
      	(selftest::test_one_liner_caret_and_range): Likewise.
      	(selftest::test_one_liner_multiple_carets_and_ranges): Likewise.
      	(selftest::test_one_liner_fixit_insert_before): Likewise.
      	(selftest::test_one_liner_fixit_insert_after): Likewise.
      	(selftest::test_one_liner_fixit_remove): Likewise.
      	(selftest::test_one_liner_fixit_replace): Likewise.
      	(selftest::test_one_liner_fixit_replace_non_equal_range):
      	Likewise.
      	(selftest::test_one_liner_fixit_replace_equal_secondary_range):
      	Likewise.
      	(selftest::test_one_liner_fixit_validation_adhoc_locations):
      	Likewise.
      	(selftest::test_one_liner_many_fixits_1): Likewise.
      	(selftest::test_one_liner_many_fixits_2): Likewise.
      	(selftest::test_one_liner_labels): Likewise.
      	(selftest::test_one_liner_simple_caret_utf8): Likewise.
      	(selftest::test_one_liner_caret_and_range_utf8): Likewise.
      	(selftest::test_one_liner_multiple_carets_and_ranges_utf8):
      	Likewise.
      	(selftest::test_one_liner_fixit_insert_before_utf8): Likewise.
      	(selftest::test_one_liner_fixit_insert_after_utf8): Likewise.
      	(selftest::test_one_liner_fixit_remove_utf8): Likewise.
      	(selftest::test_one_liner_fixit_replace_utf8): Likewise.
      	(selftest::test_one_liner_fixit_replace_non_equal_range_utf8):
      	Likewise.
      	(selftest::test_one_liner_fixit_replace_equal_secondary_range_utf8):
      	Likewise.
      	(selftest::test_one_liner_fixit_validation_adhoc_locations_utf8):
      	Likewise.
      	(selftest::test_one_liner_many_fixits_1_utf8): Likewise.
      	(selftest::test_one_liner_many_fixits_2_utf8): Likewise.
      	(selftest::test_one_liner_labels_utf8): Likewise.
      	(selftest::test_add_location_if_nearby): Likewise.
      	(selftest::test_diagnostic_show_locus_fixit_lines): Likewise.
      	(selftest::test_overlapped_fixit_printing): Likewise.
      	(selftest::test_overlapped_fixit_printing_utf8): Likewise.
      	(selftest::test_overlapped_fixit_printing_2): Likewise.
      	(selftest::test_fixit_insert_containing_newline): Likewise.
      	(selftest::test_fixit_insert_containing_newline_2): Likewise.
      	(selftest::test_fixit_replace_containing_newline): Likewise.
      	(selftest::test_fixit_deletion_affecting_newline): Likewise.
      	(selftest::test_line_numbers_multiline_range): Likewise.
      	* diagnostic.c (default_diagnostic_finalizer): Add pp_newline call
      	before call to diagnostic_show_locus.
      	(diagnostic_append_note): Likewise.
      
      gcc/fortran/ChangeLog:
      	* error.c (gfc_diagnostic_starter): Add pp_newline call before
      	call to diagnostic_show_locus.
      
      gcc/testsuite/ChangeLog:
      	* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c
      	(custom_diagnostic_finalizer): Add pp_newline call before call to
      	diagnostic_show_locus.
      
      From-SVN: r279152
      David Malcolm committed
    • Daily bump. · 41aeca8d
      From-SVN: r279150
      GCC Administrator committed
  2. 09 Dec, 2019 1 commit
    • [PR92116, PR92877] [OpenACC] Replace 'openacc.data_environ' by standard libgomp mechanics · 47afc7b4
      	libgomp/
      	PR libgomp/92116
      	PR libgomp/92877
      	* oacc-mem.c (lookup_dev): Reimplement.  Adjust all users.
      	* libgomp.h (struct acc_dispatch_t): Remove 'data_environ' member.
      	Adjust all users.
      	* testsuite/libgomp.oacc-c-c++-common/acc_free-pr92503-4-2.c:
      	Remove XFAIL.
      	* testsuite/libgomp.oacc-c-c++-common/acc_free-pr92503-4.c:
      	Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/pr92877-1.c: New file.
      
      Co-Authored-By: Julian Brown <julian@codesourcery.com>
      
      From-SVN: r279147
      Thomas Schwinge committed