1. 29 Sep, 2019 6 commits
  2. 28 Sep, 2019 13 commits
    • stl_algo.h (merge): Fix documentation. · 97d57665
      2019-09-28  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/bits/stl_algo.h (merge): Fix documentation.
      	* include/debug/functions.h (__check_sorted_aux): Add C++20 constexpr.
      	(__check_sorted): Likewise and remove nested irreflexive check.
      	(__check_sorted_set_aux, __check_sorted_set): Add C++20 constexpr.
      	(__check_partitioned_lower, __check_partitioned_upper): Likewise.
      	(_Irreflexive_checker::_S_is_valid): Likewise.
      	(__is_irreflexive, __is_irreflexive_pred): Likewise.
      	* include/debug/helper_functions.h (__get_distance): Add constexpr.
      	(__valid_range_aux): Add C++20 constexpr.
      	(__valid_range(_Iter, _Iter, _Distance_traits<_Iter>::__type&)):
      	Likewise and add std::is_constant_evaluated check.
      	(__valid_range_aux(_Iter, _Iter, std::input_iterator_tag)): New.
      	(__valid_range_aux(_Iter, _Iter, std::random_accss_iterator_tag)): New.
      	(__valid_range_aux(_Integral, _Integral, std::__true_type)): New,
      	use latter.
      	(__valid_range(_Iter, _Iter)): Adapt to use latter, add constexpr and
      	__builtin_is_contant_evaludated check..
      	(__can_advance, __base): Add constexpr.
      	* include/debug/macros.h [_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED]
      	(_GLIBCXX_DEBUG_VERIFY_COND_AT): New.
      	(__glibcxx_check_sorted): Use __glibcxx_check_irreflexive.
      	(__glibcxx_check_sorted_pred): Use __glibcxx_check_irreflexive_pred.
      	* testsuite/25_algorithms/binary_search/constexpr.cc: Use irreflexive
      	std::less.
      	* testsuite/25_algorithms/is_sorted/constexpr.cc: Likewise.
      	* testsuite/25_algorithms/merge/constexpr.cc: Fix order in camm. Fix
      	lambda to be irreflexive.
      
      From-SVN: r276260
      François Dumont committed
    • [Darwin, PPC, Mode Iterators 4/n] Update macho_high. · 23cb6f8e
      Drop the expander and use a mode iterator on the define_insn
      for @macho_high_<mode> instead.
      
      gcc/ChangeLog:
      
      2019-09-28  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin.c (gen_macho_high): Amend to include the mode
      	argument.
      	(machopic_indirect_data_reference): Amend gen_macho_high call
      	to include mode argument.
      	(machopic_legitimize_pic_address): Likewise.
      	* config/rs6000/rs6000.c (rs6000_legitimize_address):
      	* config/rs6000/darwin.md (@macho_high_<mode>): New, replaces
      	the macho_high expander and two define_insn entries.
      
      From-SVN: r276256
      Iain Sandoe committed
    • re PR libfortran/91593 (Implicit enum conversions in libgfortran/io/transfer.c) · 60674b3f
      2019-09-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libfortran/91593
      	* io/io.h: Add gcc_unreachable().
      	* io/transfer.c (file_mode, current_mode,
      	formatted_transfer_scalar_read, formatted_transfer_scalar_write,
      	pre_position, next_record_r, next_record_w): Add and use
      	FORMATTED_UNSPECIFIED to enumeration.
      
      From-SVN: r276255
      Jerry DeLisle committed
    • re PR fortran/91802 (ICE in mio_name_expr_t, at fortran/module.c:2141) · 4c597101
      2019-09-28  Steven G. Kargl  <kargl@gcc.ngu.org>
      
      	PR fortran/91802
      	* decl.c (attr_decl1): Check if rank+corank > 15.
      
      2019-09-28  Steven G. Kargl  <kargl@gcc.ngu.org>
      
      	PR fortran/91802
      	* gfortran.dg/pr91802.f90: New test.
      
      From-SVN: r276254
      Steven G. Kargl committed
    • re PR fortran/91864 (ICE in gfc_check_do_variable, at fortran/parse.c:4405) · 036aa592
      2019-09-28  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/91864
      	* gcc/fortran/io.c (match_io_element): An inquiry parameter cannot be
      	read into.
      	* gcc/fortran/match.c (gfc_match_allocate): An inquiry parameter 
      	can be neither an allocate-object nor stat variable.
      	(gfc_match_deallocate): An inquiry parameter cannot be deallocated.
      
      2019-09-28  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/91864
      	* gcc/testsuite/gfortran.dg/pr91864.f90
      
      From-SVN: r276253
      Steven G. Kargl committed
    • PR c++/91889 - follow-up fix for DR 2352. · 406c9a11
      	* call.c (involves_qualification_conversion_p): New function.
      	(direct_reference_binding): Build a ck_qual if the conversion
      	would involve a qualification conversion.
      	(convert_like_real): Strip the conversion created by the ck_qual
      	in direct_reference_binding.
      
      	* g++.dg/cpp0x/ref-bind3.C: Add dg-error.
      	* g++.dg/cpp0x/ref-bind4.C: New test.
      	* g++.dg/cpp0x/ref-bind5.C: New test.
      	* g++.dg/cpp0x/ref-bind6.C: New test.
      	* g++.old-deja/g++.pt/spec35.C: Revert earlier change.
      
      From-SVN: r276251
      Marek Polacek committed
    • PR c++/91921 - stray warning with -Woverloaded-virtual. · 7cf66a2d
      	* class.c (warn_hidden): Only emit the second part of
      	-Woverloaded-virtual if the first part was issued.  Use inform instead
      	warning_at.
      
      	* g++.dg/warn/Woverloaded-2.C: New.
      	* g++.dg/warn/Woverloaded-2.h: New.
      	* g++.dg/warn/pr61945.C: Turn dg-warning into dg-message.
      	* g++.old-deja/g++.mike/warn6.C: Likewise.
      	* g++.old-deja/g++.warn/virt1.C: Likewise.
      
      From-SVN: r276249
      Marek Polacek committed
    • PR c++/91923 - failure-to-SFINAE with class type NTTP in C++17. · 028c9b3b
      	* pt.c (invalid_nontype_parm_type_p): Only emit errors when
      	tf_error.
      
      	* g++.dg/cpp0x/nontype5.C: New test.
      
      From-SVN: r276248
      Marek Polacek committed
    • re PR target/86805 (sh port needs updating for CVE-2017-5753) · c57a3850
      gcc/
      2019-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
      
      	PR target/86805
      	* config/sh/sh.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
      
      From-SVN: r276244
      Oleg Endo committed
    • re PR target/80672 (gcc/config/sh/sh.c:716: prefer compare to find.) · 2664bcb8
      gcc/
      2019-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
      
      	PR target/80672
      	* config/sh/sh.c (parse_validate_atomic_model_option): Use
      	std::string::compare instead of std::string::find.
      
      From-SVN: r276240
      Oleg Endo committed
    • Fix endian issue in pr91656 testcases · b1649990
      	PR testsuite/91676
      	PR rtl-optimization/91656
      	* gcc.dg/torture/pr91656-1.c: Correct for big and pdp endian.
      	* gcc.dg/torture/pr91656-2.c: Likewise.
      	* gcc.dg/torture/pr91656-3.c: Likewise.
      
      From-SVN: r276236
      Alan Modra committed
    • compiler: resolve importing ambiguity for more complex function calls · 6e81d34e
          
          Tweak the exporter for inlinable function bodies to work around a
          problem with importing of function calls whose function expressions
          are not simple function names. In the bug in question, the function
          body exporter was writing out a function call of the form
          
                 (*(*FuncTyp)(var))(arg)
          
          which produced an export data representation of
          
                 *$convert(<type 5>, var)(x)
          
          which is hard to parse unambiguously. Fix: change the export data
          emitter to introduce parens around the function expression for more
          complex calls.
          
          Testcase for this bug is in CL 197217.
          
          Fixes golang/go#34503.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/197122
      
      From-SVN: r276228
      Ian Lance Taylor committed
    • Daily bump. · 222e8cb6
      From-SVN: r276227
      GCC Administrator committed
  3. 27 Sep, 2019 21 commits
    • Regenerate `configure' scripts for `uclinuxfdpiceabi' libtool.m4 update · e9085da5
      A change made with r275564 ("[ARM/FDPIC v6 02/24] [ARM] FDPIC: Handle 
      arm*-*-uclinuxfdpiceabi in configure scripts") to libtool.m4 has not 
      regenerated all the `configure' scripts affected.  Fix it.
      
      	gcc/
      	* configure: Regenerate.
      
      	libatomic/
      	* configure: Regenerate.
      
      	libbacktrace/
      	* configure: Regenerate.
      
      	libcc1/
      	* configure: Regenerate.
      
      	libffi/
      	* configure: Regenerate.
      
      	libgfortran/
      	* configure: Regenerate.
      
      	libgomp/
      	* configure: Regenerate.
      
      	libhsail-rt/
      	* configure: Regenerate.
      
      	libitm/
      	* configure: Regenerate.
      
      	libobjc/
      	* configure: Regenerate.
      
      	liboffloadmic/
      	* configure: Regenerate.
      
      	libphobos/
      	* configure: Regenerate.
      
      	libquadmath/
      	* configure: Regenerate.
      
      	libsanitizer/
      	* configure: Regenerate.
      
      	libssp/
      	* configure: Regenerate.
      
      	libstdc++-v3/
      	* configure: Regenerate.
      
      	libvtv/
      	* configure: Regenerate.
      
      	lto-plugin/
      	* configure: Regenerate.
      
      	zlib/
      	* configure: Regenerate.
      
      From-SVN: r276213
      Maciej W. Rozycki committed
    • re PR c++/88203 (assert does not compile with OpenMP's pragma omp parallel for default(none)) · 59bc434a
      	PR c++/88203
      c-family/
      	* c-common.h (c_omp_predefined_variable): Declare.
      	* c-omp.c (c_omp_predefined_variable): New function.
      	(c_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
      	for predefined variables.
      c/
      	* c-parser.c (c_parser_predefined_identifier): New function.
      	(c_parser_postfix_expression): Use it.
      	(c_parser_omp_variable_list): Parse predefined identifiers.
      	* c-typeck.c (c_finish_omp_clauses): Allow predefined variables
      	in shared and firstprivate clauses, even when they are predetermined
      	shared.
      cp/
      	* parser.c (cp_parser_omp_var_list_no_open): Parse predefined
      	variables.
      	* semantics.c (finish_omp_clauses): Allow predefined variables in
      	shared and firstprivate clauses, even when they are predetermined
      	shared.
      	* cp-gimplify.c (cxx_omp_predetermined_sharing_1): Return
      	OMP_CLAUSE_DEFAULT_SHARED for predefined variables.
      testsuite/
      	* c-c++-common/gomp/pr88203-1.c: New test.
      	* c-c++-common/gomp/pr88203-2.c: New test.
      	* c-c++-common/gomp/pr88203-3.c: New test.
      
      From-SVN: r276212
      Jakub Jelinek committed
    • re PR middle-end/91920 (ggc 9.2.0 failing openmp compile on ppc64le) · 00798c58
      	PR middle-end/91920
      	* gimplify.c (omp_default_clause): Predetermine DECL_IN_CONSTANT_POOL
      	variables as shared.
      
      	* c-c++-common/gomp/pr91920.c: New test.
      
      From-SVN: r276211
      Jakub Jelinek committed
    • [Darwin, PPC, Mode Iterators 3/n] Update macho_correct_pic. · 576113ab
      Drop the expander and use a mode expander on the define_insn
      for macho_correct_pic instead.
      
      gcc/ChangeLog:
      
      2019-09-27  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/rs6000/darwin.md (@macho_correct_pic_<mode>): New,
      	replaces the expander and two define_insn entries.
      	(@reload_macho_picbase_<mode>): Update gen_macho_correct_pic
      	call.
      	* config/rs6000/rs6000.md (builtin_setjmp_receiver): Likewise.
      
      From-SVN: r276196
      Iain Sandoe committed
    • Const-correctness fixes for fibonacci_heap.h · 26a23d11
      gcc/ChangeLog:
      	* fibonacci_heap.h (fibonacci_heap::empty): Make const.
      	(fibonacci_heap::nodes): Likewise.
      	(fibonacci_heap::min_key): Likewise.
      	(fibonacci_heap::min): Likewise.
      
      From-SVN: r276193
      David Malcolm committed
    • constexpr.c (cxx_fold_indirect_ref): Use similar_type_p. · 1a120ec1
      	* constexpr.c (cxx_fold_indirect_ref): Use similar_type_p.
      
      Merging the similar_type_p change to the concepts branch broke a cmcstl2
      testcase; investigating led me to this small testcase which has always
      failed on trunk.
      
      	(cxx_eval_indirect_ref): Likewise.  Improve error location.
      
      From-SVN: r276192
      Jason Merrill committed
    • cp-tree.h (class iloc_sentinel): New. · c872f150
      	* cp-tree.h (class iloc_sentinel): New.
      
      We didn't already have a sentinel for input_location, and while
      temp_override would work, it would also happily set input_location to 0,
      which breaks things that try to look up the associated filename.
      
      	* decl.c (grokdeclarator, finish_enum_value_list): Use it.
      	* mangle.c (mangle_decl_string): Use it.
      	* pt.c (perform_typedefs_access_check): Use it.
      
      From-SVN: r276191
      Jason Merrill committed
    • Make cgraph_node::get_fun const · 975d043f
      gcc/ChangeLog:
      	* cgraph.c (cgraph_node::get_fun): Make const.
      	* cgraph.h (cgraph_node::get_fun): Likewise.
      
      From-SVN: r276190
      David Malcolm committed
    • compiler: don't read known type, simplify Import::finalize_methods · 37ed4c32
          
          With the current export format, if we already know the type, we don't
          have to read and parse the definition.
          
          We only use the finalizer in Import::finalize_methods, so make it a
          local variable.  To match Finalize_methods::type, only put struct
          types into real_for_named.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/197700
      
      From-SVN: r276188
      Ian Lance Taylor committed
    • compiler: only check whether struct or array types are big · 51c3b7c6
          
          Fetching the size of a type typically involves a hash table lookup,
          and is generally non-trivial.  The escape analysis code calls is_big
          more than one might expect.  So only fetch the size if we need it.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/197699
      
      From-SVN: r276187
      Ian Lance Taylor committed
    • compiler: fix brace formatting · df435456
          
          Just happened to notice this one.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/197698
      
      From-SVN: r276186
      Ian Lance Taylor committed
    • PR libstdc++/91910 fix data race in Debug Mode destructors · f7a3a382
      Fix data race when _Safe_iterator_base::_M_detach() runs concurrently with
      the _Safe_container_base destructor.
      
      	PR libstdc++/91910
      	* src/c++11/debug.cc (_Safe_iterator_base::_M_detach()): Load pointer
      	atomically and lock the mutex before accessing the sequence.
      	(_Safe_local_iterator_base::_M_detach()): Likewise.
      	(_Safe_iterator_base::_M_reset()): Clear _M_sequence atomically.
      
      From-SVN: r276184
      Jonathan Wakely committed
    • re PR target/91919 (arm-linux-eabi ICE with building kernel) · 88e032f1
      	PR target/91919
      	* config/arm/arm.md (<US>mlal): Remove SE wrappers around operands
      	of SImode MULT.
      
      	* gcc.c-torture/compile/pr91919.c: New.test
      
      From-SVN: r276183
      Jakub Jelinek committed
    • tree-vectorizer.h (_stmt_vec_info::reduc_fn): New. · 29f26978
      2019-09-27  Richard Biener  <rguenther@suse.de>
      
      	* tree-vectorizer.h (_stmt_vec_info::reduc_fn): New.
      	(STMT_VINFO_REDUC_FN): Likewise.
      	* tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
      	STMT_VINFO_REDUC_FN.
      	* tree-vect-loop.c (vect_is_simple_reduction): Fix STMT_VINFO_REDUC_IDX
      	for condition reductions.
      	(vect_create_epilog_for_reduction): Compute all required state
      	from the stmt to be vectorized.
      	(vectorizable_reduction): Simplify vect_create_epilog_for_reduction
      	invocation and remove then dead code.  For single def-use chains
      	record only a single vector stmt.
      
      From-SVN: r276180
      Richard Biener committed
    • associate_48.f90: Fix a dg directive. · 67cb34ef
      2019-09-27  Manfred Schwarb  <manfred99@gmx.ch>
      
              * gfortran.dg/associate_48.f90: Fix a dg directive.
              * gfortran.dg/auto_in_equiv_1.f90: Ditto.
              * gfortran.dg/auto_in_equiv_2.f90: Ditto.
              * gfortran.dg/lto/pr87689_0.f: Ditto.
      
      From-SVN: r276179
      Manfred Schwarb committed
    • re PR tree-optimization/91885 (ICE when compiling SPEC 2017 blender benchmark… · 2ae8a2c9
      re PR tree-optimization/91885 (ICE when compiling SPEC 2017 blender benchmark with -O3 -fprofile-generate)
      
      	PR tree-optimization/91885
      	* gcc.dg/pr91885.c (__int64_t): Change from long to long long.
      	(__uint64_t): Change from unsigned long to unsigned long long.
      
      From-SVN: r276178
      Jakub Jelinek committed
    • [AArch64] Split built-in function codes into major and minor codes · 6d4d616a
      It was easier to add the SVE ACLE support without enumerating every
      function at build time.  This in turn meant that it was easier if the
      SVE builtins occupied a distinct numberspace from the existing AArch64
      ones, which *are* enumerated at build time.  This patch therefore
      divides the built-in functions codes into "major" and "minor" codes.
      At present the major code is just "general", but the SVE patch will add
      "SVE" as well.
      
      Also, it was convenient to put the SVE ACLE support in its own file,
      so the patch makes aarch64.c provide the frontline target hooks directly,
      forwarding to the other files for the real work.
      
      The reason for organising the files this way is that aarch64.c needs
      to define the target hook macros whatever happens, and having aarch64.c
      macros forward to aarch64-builtins.c functions and aarch64-bulitins.c
      functions forward to the SVE file seemed a bit indirect.  Doing things
      the way the patch does them puts aarch64-builtins.c and the SVE code on
      more of an equal footing.
      
      The aarch64_(general_)gimple_fold_builtin change is mostly just
      reindentation.
      
      2019-09-27  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* config/aarch64/aarch64-protos.h (aarch64_builtin_class): New enum.
      	(AARCH64_BUILTIN_SHIFT, AARCH64_BUILTIN_CLASS): New constants.
      	(aarch64_gimple_fold_builtin, aarch64_mangle_builtin_type)
      	(aarch64_fold_builtin, aarch64_init_builtins, aarch64_expand_builtin):
      	(aarch64_builtin_decl, aarch64_builtin_rsqrt): Delete.
      	(aarch64_general_mangle_builtin_type, aarch64_general_init_builtins):
      	(aarch64_general_fold_builtin, aarch64_general_gimple_fold_builtin):
      	(aarch64_general_expand_builtin, aarch64_general_builtin_decl):
      	(aarch64_general_builtin_rsqrt): Declare.
      	* config/aarch64/aarch64-builtins.c (aarch64_general_add_builtin):
      	New function.
      	(aarch64_mangle_builtin_type): Rename to...
      	(aarch64_general_mangle_builtin_type): ...this.
      	(aarch64_init_fcmla_laneq_builtins, aarch64_init_simd_builtins)
      	(aarch64_init_crc32_builtins, aarch64_init_builtin_rsqrt)
      	(aarch64_init_pauth_hint_builtins, aarch64_init_tme_builtins): Use
      	aarch64_general_add_builtin instead of add_builtin_function.
      	(aarch64_init_builtins): Rename to...
      	(aarch64_general_init_builtins): ...this.  Use
      	aarch64_general_add_builtin instead of add_builtin_function.
      	(aarch64_builtin_decl): Rename to...
      	(aarch64_general_builtin_decl): ...this and remove the unused
      	arguments.
      	(aarch64_expand_builtin): Rename to...
      	(aarch64_general_expand_builtin): ...this and remove the unused
      	arguments.
      	(aarch64_builtin_rsqrt): Rename to...
      	(aarch64_general_builtin_rsqrt): ...this.
      	(aarch64_fold_builtin): Rename to...
      	(aarch64_general_fold_builtin): ...this.  Take the function subcode
      	and return type as arguments.  Remove the "ignored" argument.
      	(aarch64_gimple_fold_builtin): Rename to...
      	(aarch64_general_gimple_fold_builtin): ...this.  Take the function
      	subcode and gcall as arguments, and return the new function call.
      	* config/aarch64/aarch64.c (aarch64_init_builtins)
      	(aarch64_fold_builtin, aarch64_gimple_fold_builtin)
      	(aarch64_expand_builtin, aarch64_builtin_decl): New functions.
      	(aarch64_builtin_reciprocal): Call aarch64_general_builtin_rsqrt
      	instead of aarch64_builtin_rsqrt.
      	(aarch64_mangle_type): Call aarch64_general_mangle_builtin_type
      	instead of aarch64_mangle_builtin_type.
      
      From-SVN: r276177
      Richard Sandiford committed
    • [C][C++] Allow targets to check calls to BUILT_IN_MD functions · c6447c20
      For SVE, we'd like the frontends to check calls to target-specific
      built-in functions in the same way that they already do for "normal"
      builtins.  This patch adds a target hook for that and extends
      check_builtin_function_arguments accordingly.
      
      A slight complication is that when TARGET_RESOLVE_OVERLOADED_BUILTIN
      has resolved an overload, it can use build_function_call_vec to build
      the call to the underlying non-overloaded function decl.  This in
      turn coerces the arguments to the function type and then calls
      check_builtin_function_arguments to check the final call.  If the
      target does find a problem in this final call, it can be useful
      to refer to the original overloaded function decl in diagnostics,
      since that's what the user wrote.
      
      The patch therefore passes the original decl as a final optional
      parameter to build_function_call_vec.
      
      2019-09-27  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* target.def (check_builtin_call): New target hook.
      	* doc/tm.texi.in (TARGET_CHECK_BUILTIN_CALL): New @hook.
      	* doc/tm.texi: Regenerate.
      
      gcc/c-family/
      	* c-common.h (build_function_call_vec): Take the original
      	function decl as an optional final parameter.
      	(check_builtin_function_arguments): Take the original function decl.
      	* c-common.c (check_builtin_function_arguments): Likewise.
      	Handle all built-in functions, not just BUILT_IN_NORMAL ones.
      	Use targetm.check_builtin_call to check BUILT_IN_MD functions.
      
      gcc/c/
      	* c-typeck.c (build_function_call_vec): Take the original function
      	decl as an optional final parameter.  Pass all built-in calls to
      	check_builtin_function_arguments.
      
      gcc/cp/
      	* cp-tree.h (build_cxx_call): Take the original function decl
      	as an optional final parameter.
      	(cp_build_function_call_vec): Likewise.
      	* call.c (build_cxx_call): Likewise.  Pass all built-in calls to
      	check_builtin_function_arguments.
      	* typeck.c (build_function_call_vec): Take the original function
      	decl as an optional final parameter and pass it to
      	cp_build_function_call_vec.
      	(cp_build_function_call_vec): Take the original function
      	decl as an optional final parameter and pass it to build_cxx_call.
      
      From-SVN: r276176
      Richard Sandiford committed
    • Fix reduc_index==1 handling for COND_REDUCTION (PR91909) · 18908a56
      The then/else order of the VEC_COND_EXPRs created by
      vect_create_epilog_for_reduction meeds to line up with the
      main VEC_COND_EXPR.
      
      2019-09-27  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	PR tree-optimization/91909
      	* tree-vect-loop.c (vect_create_epilog_for_reduction): Take a
      	reduc_index parameter.  When handling COND_REDUCTION, make sure
      	that the reduction phi operand is in the correct arm of the
      	VEC_COND_EXPR.
      	(vectorizable_reduction): Pass reduc_index to the above.
      
      From-SVN: r276175
      Richard Sandiford committed
    • [AArch64][SVE2] Shift-Right Accumulate combine patterns · 76bb5af6
      This patch adds combining support for SVE2's shift-right accumulate
      instructions.
      
      2019-09-27  Yuliang Wang  <yuliang.wang@arm.com>
      
      gcc/
      	* config/aarch64/aarch64-sve2.md (aarch64_sve2_sra<mode>):
      	New combine pattern.
      
      gcc/testsuite/
      	* gcc.target/aarch64/sve2/shracc_1.c: New test.
      
      From-SVN: r276174
      Yuliang Wang committed
    • set DECL_SIZE_UNIT for zero-sized fields · 639a28ba
      Zero-sized fields do not get processed by finish_record_type: they're
      removed from the field list before and reinserted after, so their
      DECL_SIZE_UNIT remains unset, causing the translation of assignment
      statements with use_memset_p, in quite unusual circumstances, to use a
      NULL_TREE as the memset length.  This patch sets DECL_SIZE_UNIT for
      the zero-sized fields, that don't go through language-independent
      layout, in language-specific layout.
      
      
      for  gcc/ada/ChangeLog
      
      	* gcc-interface/decl.c (components_to_record): Set
      	DECL_SIZE_UNIT for zero-sized fields.
      
      From-SVN: r276173
      Alexandre Oliva committed