1. 31 Oct, 2019 10 commits
    • configure.ac: Compute and substitute omp_device_properties and omp_device_property_deps. · 9ba66bf5
      	* configure.ac: Compute and substitute omp_device_properties and
      	omp_device_property_deps.
      	* Makefile.in (generated_files): Add omp-device-properties.h.
      	(omp-general.o): Depend on omp-device-properties.h.
      	(omp_device_properties): New make variable.
      	(omp-device-properties.h, s-omp-device-properties-h,
      	install-omp-device-properties): New goals.
      	(install): Depend on install-omp-device-properties for accelerators.
      	* target.def (TARGET_OMP_DEVICE_KIND_ARCH_ISA): New target hook.
      	* target.h (enum omp_device_kind_arch_isa): New enum.
      	* doc/tm.texi.in: Add placeholder for TARGET_OMP_DEVICE_KIND_ARCH_ISA
      	documentation.
      	* omp-general.c: Include omp-device-properties.h.
      	(omp_max_simt_vf): Expect OFFLOAD_TARGET_NAMES to be separated by
      	colon instead of comma.
      	(omp_offload_device_kind_arch_isa, omp_maybe_offloaded): New
      	functions.
      	(omp_context_selector_matches): Implement device set arch/isa
      	selectors, improve device set kind selector handling.
      	* config/i386/i386-options.h (ix86_omp_device_kind_arch_isa): Declare.
      	* config/i386/i386.c (TARGET_SIMD_CLONE_ADJUST,
      	TARGET_SIMD_CLONE_USABLE): Formatting fix.
      	(TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
      	ix86_omp_device_kind_arch_isa.
      	* config/i386/i386-options.c (struct ix86_target_opts): Move type
      	definition from ix86_target_string to file scope.
      	(isa2_opts, isa_opts): Moved arrays from ix86_target_string function
      	to file scope.
      	(ix86_omp_device_kind_arch_isa): New function.
      	(ix86_target_string): Moved struct ix86_target_opts, isa2_opts and
      	isa_opts definitions to file scope.
      	* config/i386/t-intelmic (omp-device-properties): New goal.
      	* config/nvptx/t-nvptx (omp-device-properties): Likewise.
      	* config/nvptx/nvptx.c (nvptx_omp_device_kind_arch_isa): New function.
      	(TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
      	nvptx_omp_device_kind_arch_isa.
      	* configure: Regenerate.
      	* doc/tm.texi: Regenerate.
      testsuite/
      	* c-c++-common/gomp/declare-variant-9.c: New test.
      	* c-c++-common/gomp/declare-variant-10.c: New test.
      
      From-SVN: r277662
      Jakub Jelinek committed
    • Fortran] PR92277 - Fix assumed-rank array with bind(C) · 6409a3c0
              gcc/fortran/
              PR fortran/92277
              * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Fix DECL_ARTIFICIAL
              checking.
      
              gcc/testsuite/
              PR fortran/92277
              * fortran.dg/pr92277.f90: New.
      
      From-SVN: r277661
      Tobias Burnus committed
    • re PR middle-end/92231 (ICE in gimple_fold_stmt_to_constant_1) · 6773658a
      	PR middle-end/92231
      	* tree.h (fndecl_built_in_p): Use fndecl_built_in_p instead of
      	DECL_BUILT_IN in comment.  Remove redundant ()s around return
      	argument.
      	* tree.c (free_lang_data_in_decl): Check if var is FUNCTION_DECL
      	before calling fndecl_built_in_p.
      	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Check if
      	TREE_OPERAND (fn, 0) is a FUNCTION_DECL before calling
      	fndecl_built_in_p on it.
      lto/
      	* lto-lang.c (handle_const_attribute): Don't call fndecl_built_in_p
      	on *node that is not FUNCTION_DECL.
      testsuite/
      	* gcc.c-torture/compile/pr92231.c: New test.
      
      From-SVN: r277660
      Jakub Jelinek committed
    • [vect]Make vect-epilogues-nomask=1 default · 1297712f
      This patch turns epilogue vectorization on by default for all targets.  The
      following test strategy was chosen for this:
      
      1) Disable epilogue vectorization for all tests that failed due to
      scan-tree-dump failures for aarch64, arm and x86_64 inside:
        - gcc.dg/vect
        - gcc.target/i386
        - gcc.target/aarch6
        - gfortran.dg/vect
      
      2) Add the Bugzilla's reported testcase but xfail the scan for
      "EPILOGUE VECTORIZED" for arm*-*-* as that target does not vectorize the
      epilogue.
      
      gcc/ChangeLog:
      2019-10-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* params.def (PARAM_VECT_EPILOGUES_NOMASK): Enable by default.
      
      gcc/testsuite/ChangeLog:
      2019-10-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* gcc.dg/vect/vect-epilogues.c: New test.
      	* gcc.dg/vect/fast-math-vect-call-1.c: Disable for epilogue
      	vectorization.
      	* gcc.dg/vect/no-fast-math-vect16.c: Likewise.
      	* gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c: Likewise.
      	* gcc.dg/vect/no-scevccp-vect-iv-3.c: Likewise.
      	* gcc.dg/vect/no-section-anchors-vect-31.c: Likewise.
      	* gcc.dg/vect/no-section-anchors-vect-64.c: Likewise.
      	* gcc.dg/vect/no-section-anchors-vect-66.c: Likewise.
      	* gcc.dg/vect/no-section-anchors-vect-68.c: Likewise.
      	* gcc.dg/vect/no-vfa-vect-dv-2.c: Likewise.
      	* gcc.dg/vect/pr33804.c: Likewise.
      	* gcc.dg/vect/pr53773.c: Likewise.
      	* gcc.dg/vect/pr65947-1.c: Likewise.
      	* gcc.dg/vect/pr65947-13.c: Likewise.
      	* gcc.dg/vect/pr65947-14.c: Likewise.
      	* gcc.dg/vect/pr65947-4.c: Likewise.
      	* gcc.dg/vect/pr80631-1.c: Likewise.
      	* gcc.dg/vect/pr80631-2.c: Likewise.
      	* gcc.dg/vect/slp-23.c: Likewise.
      	* gcc.dg/vect/slp-25.c: Likewise.
      	* gcc.dg/vect/slp-reduc-2.c: Likewise.
      	* gcc.dg/vect/slp-reduc-5.c: Likewise.
      	* gcc.dg/vect/slp-reduc-6.c: Likewise.
      	* gcc.dg/vect/slp-reduc-sad-2.c: Likewise.
      	* gcc.dg/vect/slp-widen-mult-half.c: Likewise.
      	* gcc.dg/vect/trapv-vect-reduc-4.c: Likewise.
      	* gcc.dg/vect/vect-103.c: Likewise.
      	* gcc.dg/vect/vect-109.c: Likewise.
      	* gcc.dg/vect/vect-119.c: Likewise.
      	* gcc.dg/vect/vect-24.c: Likewise.
      	* gcc.dg/vect/vect-26.c: Likewise.
      	* gcc.dg/vect/vect-27.c: Likewise.
      	* gcc.dg/vect/vect-29.c: Likewise.
      	* gcc.dg/vect/vect-42.c: Likewise.
      	* gcc.dg/vect/vect-44.c: Likewise.
      	* gcc.dg/vect/vect-48.c: Likewise.
      	* gcc.dg/vect/vect-50.c: Likewise.
      	* gcc.dg/vect/vect-52.c: Likewise.
      	* gcc.dg/vect/vect-54.c: Likewise.
      	* gcc.dg/vect/vect-56.c: Likewise.
      	* gcc.dg/vect/vect-58.c: Likewise.
      	* gcc.dg/vect/vect-60.c: Likewise.
      	* gcc.dg/vect/vect-72.c: Likewise.
      	* gcc.dg/vect/vect-75-big-array.c: Likewise.
      	* gcc.dg/vect/vect-75.c: Likewise.
      	* gcc.dg/vect/vect-77-alignchecks.c: Likewise.
      	* gcc.dg/vect/vect-77-global.c: Likewise.
      	* gcc.dg/vect/vect-78-alignchecks.c: Likewise.
      	* gcc.dg/vect/vect-78-global.c: Likewise.
      	* gcc.dg/vect/vect-89-big-array.c: Likewise.
      	* gcc.dg/vect/vect-89.c: Likewise.
      	* gcc.dg/vect/vect-91.c: Likewise.
      	* gcc.dg/vect/vect-92.c: Likewise.
      	* gcc.dg/vect/vect-96.c: Likewise.
      	* gcc.dg/vect/vect-cond-reduc-3.c: Likewise.
      	* gcc.dg/vect/vect-cond-reduc-4.c: Likewise.
      	* gcc.dg/vect/vect-live-1.c: Likewise.
      	* gcc.dg/vect/vect-live-2.c: Likewise.
      	* gcc.dg/vect/vect-live-3.c: Likewise.
      	* gcc.dg/vect/vect-live-4.c: Likewise.
      	* gcc.dg/vect/vect-live-slp-1.c: Likewise.
      	* gcc.dg/vect/vect-live-slp-2.c: Likewise.
      	* gcc.dg/vect/vect-live-slp-3.c: Likewise.
      	* gcc.dg/vect/vect-multitypes-3.c: Likewise.
      	* gcc.dg/vect/vect-multitypes-4.c: Likewise.
      	* gcc.dg/vect/vect-multitypes-6.c: Likewise.
      	* gcc.dg/vect/vect-peel-1-epilogue.c: Likewise. New test.
      	* gcc.dg/vect/vect-peel-1-src.c: Likewise. New test.
      	* gcc.dg/vect/vect-peel-1.c: Likewise.
      	* gcc.dg/vect/vect-peel-3-epilogue.c: Likewise. New test.
      	* gcc.dg/vect/vect-peel-3-src.c: Likewise. New test.
      	* gcc.dg/vect/vect-peel-3.c: Likewise.
      	* gcc.dg/vect/vect-peel-4-epilogue.c: Likewise. New test.
      	* gcc.dg/vect/vect-peel-4-src.c: Likewise. New test.
      	* gcc.dg/vect/vect-peel-4.c: Likewise.
      	* gcc.dg/vect/vect-reduc-6.c: Likewise.
      	* gcc.dg/vect/vect-reduc-dot-s16a.c: Likewise.
      	* gcc.dg/vect/vect-reduc-dot-s8a.c: Likewise.
      	* gcc.dg/vect/vect-reduc-dot-s8b.c: Likewise.
      	* gcc.dg/vect/vect-reduc-dot-u16b.c: Likewise.
      	* gcc.dg/vect/vect-reduc-dot-u8a.c: Likewise.
      	* gcc.dg/vect/vect-reduc-dot-u8b.c: Likewise.
      	* gcc.dg/vect/vect-reduc-pattern-1a.c: Likewise.
      	* gcc.dg/vect/vect-reduc-pattern-1b-big-array.c: Likewise.
      	* gcc.dg/vect/vect-reduc-pattern-1c-big-array.c: Likewise.
      	* gcc.dg/vect/vect-reduc-pattern-2a.c: Likewise.
      	* gcc.dg/vect/vect-reduc-pattern-2b-big-array.c: Likewise.
      	* gcc.dg/vect/vect-reduc-sad.c: Likewise.
      	* gcc.dg/vect/vect-widen-mult-const-s16.c: Likewise.
      	* gcc.dg/vect/vect-widen-mult-const-u16.c: Likewise.
      	* gcc.dg/vect/vect-widen-mult-half-u8.c: Likewise.
      	* gcc.dg/vect/vect-widen-mult-half.c: Likewise.
      	* gcc.dg/vect/vect-widen-mult-u16.c: Likewise.
      	* gcc.dg/vect/vect-widen-mult-u8-s16-s32.c: Likewise.
      	* gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c: Likewise.
      	* gcc.target/aarch64/sve/reduc_strict_3.c: Likewise.
      	* gcc.target/i386/avx-vzeroupper-19.c: Likewise.
      	* gcc.target/i386/avx2-vect-mask-store-move1.c: Likewise.
      	* gcc.target/i386/avx512f-gather-2.c: Likewise.
      	* gcc.target/i386/avx512f-gather-5.c: Likewise.
      	* gcc.target/i386/l_fma_double_1.c: Likewise.
      	* gcc.target/i386/l_fma_double_2.c: Likewise.
      	* gcc.target/i386/l_fma_double_3.c: Likewise.
      	* gcc.target/i386/l_fma_double_4.c: Likewise.
      	* gcc.target/i386/l_fma_double_5.c: Likewise.
      	* gcc.target/i386/l_fma_double_6.c: Likewise.
      	* gcc.target/i386/l_fma_float_1.c: Likewise.
      	* gcc.target/i386/l_fma_float_2.c: Likewise.
      	* gcc.target/i386/l_fma_float_3.c: Likewise.
      	* gcc.target/i386/l_fma_float_4.c: Likewise.
      	* gcc.target/i386/l_fma_float_5.c: Likewise.
      	* gcc.target/i386/l_fma_float_6.c: Likewise.
      	* gcc.target/i386/mask-pack.c: Likewise.
      	* gcc.target/i386/mask-unpack.c: Likewise.
      	* gfortran.dg/vect/vect-4.f90: Likewise.
      
      From-SVN: r277659
      Andre Vieira committed
    • Check precondition for std::ssize(const Container&) · 164abd67
      This precondition is the subject of a national body comment on the C++20
      CD. This just adds a test to ensure we enforce the precondition.
      
      Also move existing 24_iterator/range_access*.cc tests to a dedicated
      directory for the [iterator.range] subclause.
      
      	* testsuite/24_iterators/range_access*.cc: Move to ...
      	* testsuite/24_iterators/range_access/range_access*.cc: ... here.
      	* testsuite/24_iterators/range_access/range_access_cpp20_neg.cc: New
      	test.
      
      From-SVN: r277658
      Jonathan Wakely committed
    • Remove missing usage of cgraph_local_info in arm,bfin and c6x. · 83f58fe3
      2019-10-31  Martin Liska  <mliska@suse.cz>
      
      	* config/arm/arm.c (arm_get_pcs_model): Remove usage
      	of cgraph_local_info and use local_info_node instead.
      	* config/bfin/bfin.c (bfin_load_pic_reg): Likewise.
      	(bfin_function_ok_for_sibcall): Likewise.
      	* config/c6x/c6x.c (c6x_function_ok_for_sibcall): Likewise.
      	(must_reload_pic_reg_p): Likewise.
      
      From-SVN: r277657
      Martin Liska committed
    • re PR c++/90947 (Simple lookup table of array of strings is miscompiled) · fbdbe8b0
      	PR c++/90947
      	* tree.h (type_initializer_zero_p): Remove.
      	* tree.c (type_initializer_zero_p): Remove.
      cp/
      	* cp-tree.h (type_initializer_zero_p): Declare.
      	* decl.c (reshape_init_array_1): Formatting fix.
      	* tree.c (type_initializer_zero_p): New function.  Moved from
      	../tree.c, use next_initializable_field, formatting fix.  Return
      	false for TYPE_NON_AGGREGATE_CLASS types.
      
      From-SVN: r277656
      Jakub Jelinek committed
    • PR c++/84810 - constraints on lambdas · e4c43126
      Attached is a patch that adds parsing of the optional requires-clause in a
      lambda-expression and lambda-declarator. Additionally, shorthand constraints
      from the template-parameter-list are now actually applied and constrain the
      synthesized operator().
      
      Previously we were not parsing the requires clauses at all and not saving
      the shorthand constraints in the place expected by grokfndecl.
      
      The trailing requires-clause is now also used to suppress synthesis of the
      conversion to function pointer for non-capturing non-generic lambdas as per
      expr.prim.lambda.closure/7.
      
      This includes a fix to template_class_depth. Previously it was computing the
      wrong depth for lambdas in the initializer of a static member of a class
      template, exhibited by the concepts-lambda4 test which currently fails on
      trunk. The bug was causing grokfndecl to use the constraints from the
      template class for the lambda.
      
      gcc/cp/
      2019-10-30  Jeff Chapman II  <jchapman@lock3software.com>
      
      	PR c++/84810 - constraints on lambdas
      	* lambda.c (maybe_add_lambda_conv_op): Do not synthesize
      	conversion if the call operator does not satisfy its constraints.
      	* parser.c (cp_parser_lambda_declarator_opt): Parse
      	requires-clause on generic lambdas; combine with shorthand
      	constraints. Parse trailing requires-clause and attach to the
      	synthesized call operator.
      	* pt.c (template_class_depth): Only inspect
      	LAMBDA_TYPE_EXTRA_SCOPE if it is present. This fixes an
      	incorrect depth calculation for lambdas inside the initializer
      	of a static data member of a template class.
      
      gcc/testsuite/
      2019-10-30  Jeff Chapman II  <jchapman@lock3software.com>
      
      	PR c++/84810 - constraints on lambdas
      	* g++.dg/cpp2a/concepts-lambda2.C: New test.
      	* g++.dg/cpp2a/concepts-lambda3.C: Ditto.
      	* g++.dg/cpp2a/concepts-lambda4.C: Ditto.
      	* g++.dg/cpp2a/concepts-pr84810.C: Ditto.
      
      From-SVN: r277655
      Jeff Chapman II committed
    • PR c++/92268 - hard error satisfying return-type-requirement · 56e0346d
      Previously we would put the template arguments for the concept-check in a
      TEMPLATE_ID and then also pass them to constraints_satisfied_p, which meant
      that we would try to normalize the concept-check with the fully instantiated
      arguments, leading to sadness.  Simply not passing the args to
      constraints_satisfied_p fixes the problem.
      
      I also noticed that we weren't detecting substitution failure in the
      constraints, but were silently treating it as success.
      
      	* constraint.cc (type_deducible_p): Check for substitution failure.
      	(diagnose_compound_requirement): Adjust diagnostic.
      	* pt.c (do_auto_deduction): Don't pass cargs to
      	constraints_satisfied_p.
      
      From-SVN: r277654
      Jason Merrill committed
    • Daily bump. · d11368e6
      From-SVN: r277653
      GCC Administrator committed
  2. 30 Oct, 2019 30 commits
    • PR c++/91369 - Implement P0784R7: constexpr new · cf650568
      	PR c++/91369 - Implement P0784R7: constexpr new
      	* constexpr.c (cxx_replaceable_global_alloc_fn): Don't return true
      	for placement new.
      	(cxx_placement_new_fn, is_std_construct_at): New functions.
      	(cxx_eval_call_expression): Allow placement new in std::construct_at.
      	(potential_constant_expression_1): Likewise.
      
      	* g++.dg/cpp2a/constexpr-new5.C: New test.
      
      From-SVN: r277649
      Jakub Jelinek committed
    • typeck.c (decl_in_std_namespace_p): Return true also for decls in inline… · 97ccc60e
      typeck.c (decl_in_std_namespace_p): Return true also for decls in inline namespaces inside of std namespace.
      
      	* typeck.c (decl_in_std_namespace_p): Return true also for decls
      	in inline namespaces inside of std namespace.
      
      	* g++.dg/cpp0x/Wpessimizing-move6.C: New test.
      
      From-SVN: r277648
      Jakub Jelinek committed
    • re PR c++/92024 (crash in check_local_shadow) · e0d91792
      2019-10-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * doc/invoke.texi (-Wshadow, -Wshadow=global
              -Wshadow=local, -Wshadow=compatible-local): Update documentation.
      
      cp:
      2019-10-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              PR c++/92024
              * name-lookup.c (check_local_shadow): Shadowing TYPE_DECLs
              is always a -Wshadow=compatible-local warning, unless
              -Wshadow is used.
      
      testsuite:
      2019-10-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              PR c++/92024
              * g++.dg/parse/crash70.C: New test.
              * c-c++-common/Wshadow-1.c: New test.
      
      From-SVN: r277643
      Bernd Edlinger committed
    • Fortran] PR 92208 don't use function-result dummy variable as actual argument · 6b7a9826
              PR fortran/92208
              * trans-array.c (gfc_conv_array_parameter): Only copy
              string-length backend_decl if expression is not a function.
      
              PR fortran/92208
              * gfortran.dg/pr92208.f90: New.
      
      From-SVN: r277639
      Tobias Burnus committed
    • * cxx-pretty-print.c (get_fold_operator): Use OVL_OP_INFO. · c7667624
      From-SVN: r277637
      Jason Merrill committed
    • PR c++/92134 - constinit malfunction in static data member. · d54faccc
      I wasn't properly setting LOOKUP_CONSTINIT in grokfield and so we didn't
      detect a non-const initializer.
      
      	* decl2.c (grokfield): Set LOOKUP_CONSTINIT.
      
      	* g++.dg/cpp2a/constinit14.C: New test.
      
      From-SVN: r277636
      Marek Polacek committed
    • Use if-constexpr instead of overloading for customization point · ce001b30
      This combines two of the std::ranges::swap.operator() overloads into a
      single function template. Using if-constexpr to choose between
      implementations should give the compiler less work to do than using
      overloading.
      
      	* include/std/concepts (std::ranges::swap): Use a single overload for
      	the non-array cases, and switch using if-constexpr.
      
      From-SVN: r277635
      Jonathan Wakely committed
    • Fix another compilation error with Clang · 41167956
      	* include/bits/stl_iterator.h (__normal_iterator::iterator_concept):
      	Guard with __cpp_lib_concepts macro.
      
      From-SVN: r277634
      Jonathan Wakely committed
    • Fix some missing/incorrect feature test macros · 0d58d88d
      	* include/std/bit (__cpp_lib_bitops): Define.
      	* include/std/version (__cpp_lib_constexpr): Remove.
      	(__cpp_lib_bitops, __cpp_lib_constexpr_dynamic_alloc): Define.
      	* testsuite/26_numerics/bit/header.cc: New test.
      	* testsuite/26_numerics/bit/header-2.cc: New test.
      	* testsuite/20_util/allocator_traits/header.cc: New test.
      	* testsuite/20_util/allocator_traits/header-2.cc: New test.
      
      From-SVN: r277633
      Jonathan Wakely committed
    • [C++ PATCH] Feature macros are long · 43f1814c
      https://gcc.gnu.org/ml/gcc-patches/2019-10/msg02157.html
      	* c-cppbuiltin.c (c_cpp_builtins): Add 'L' suffix to feature
      	macros.
      
      From-SVN: r277632
      Nathan Sidwell committed
    • Fortran/OpenMP] Don't create "alloc:" for 'target exit data' · 91ae0a46
              gcc/
              * gimplify.c (gimplify_scan_omp_clauses): Remove FE-generated
              GOMP_MAP_TO_PSET and GOMP_MAP_POINTER mapping for 'target update'
              and 'target exit data'.
      
              libgomp/
              * testsuite/libgomp.fortran/target9.f90: New.
      
      From-SVN: r277631
      Tobias Burnus committed
    • Remove some more using-declarations from namespace __gnu_cxx · d03eca30
      Similar to some recent patches, this removes using-declarations for
      names from namespace std, so that they are not redeclared in __gnu_cxx.
      
      	* include/bits/stl_iterator.h (namespace __gnu_cxx): Remove
      	using-declarations for std::iterator and std::iterator_traits.
      	(__gnu_cxx::__normal_iterator): Qualify iterator_traits.
      	* include/ext/algorithm (namespace __gnu_cxx): Remove
      	using-declarations for std names and qualify those names when used.
      	Also refer to std::min in parentheses to protect against function-like
      	macros.
      	* include/ext/rc_string_base.h: Qualify iterator_traits.
      	* include/ext/sso_string_base.h: Qualify iterator_traits.
      
      From-SVN: r277630
      Jonathan Wakely committed
    • Apply C++20 changes to various iterator types · 9aeb3bef
      This ensures that __normal_iterator<T*, C> satisfies the
      contiguous_iterator concept, by defining the iterator_concept member
      type.
      
      Also update vector<bool>'s iterators, reverse_iterator,
      istreambuf_iterator and ostreambuf_iterator to meet the C++20
      requirements.
      
      	PR libstdc++/92272
      	* include/bits/stl_bvector.h (_Bit_iterator::pointer)
      	(_Bit_const_iterator::pointer): Define as void for C++20.
      	* include/bits/stl_iterator.h (reverse_iterator::operator->()): Add
      	constraints for C++20.
      	(__normal_iterator::iterator_concept): Define for C++20.
      	* include/bits/streambuf_iterator.h (istreambuf_iterator::pointer):
      	Define as void for C++20.
      	(ostreambuf_iterator::difference_type): Define as ptrdiff_t for C++20.
      	(ostreambuf_iterator::ostreambuf_iterator()): Add default constructor
      	for C++20.
      	* testsuite/23_containers/vector/bool/iterator_c++20.cc: New test.
      	* testsuite/24_iterators/bidirectional/concept.cc: New test.
      	* testsuite/24_iterators/bidirectional/tag.cc: New test.
      	* testsuite/24_iterators/contiguous/concept.cc: New test.
      	* testsuite/24_iterators/contiguous/tag.cc: New test.
      	* testsuite/24_iterators/forward/concept.cc: New test.
      	* testsuite/24_iterators/forward/tag.cc: New test.
      	* testsuite/24_iterators/input/concept.cc: New test.
      	* testsuite/24_iterators/input/tag.cc: New test.
      	* testsuite/24_iterators/istreambuf_iterator/requirements/typedefs.cc:
      	New test.
      	* testsuite/24_iterators/ostreambuf_iterator/requirements/typedefs.cc:
      	New test.
      	* testsuite/24_iterators/output/concept.cc: New test.
      	* testsuite/24_iterators/output/tag.cc: New test.
      	* testsuite/24_iterators/random_access/concept.cc: New test.
      	* testsuite/24_iterators/random_access/tag.cc: New test.
      	* testsuite/24_iterators/range_operations/advance_debug_neg.cc: New
      	test.
      	* testsuite/24_iterators/random_access_iterator/26020.cc: Move to ...
      	* testsuite/24_iterators/operations/26020.cc: ... here.
      	* testsuite/24_iterators/random_access_iterator/
      	string_vector_iterators.cc: Move to ...
      	* testsuite/24_iterators/random_access/string_vector_iterators.cc: ...
      	here.
      
      From-SVN: r277629
      Jonathan Wakely committed
    • Fix typo in preprocessor check · 5211593c
      	* testsuite/util/testsuite_iterators.h: Fix typo in __cplusplus check.
      
      From-SVN: r277628
      Jonathan Wakely committed
    • Edges to interposable calles are possibly_call_in_translation_unit_p · f653eb0e
      2019-10-30  Martin Jambor  <mjambor@suse.cz>
      
      	ipa/92278
      	* cgraph.c (cgraph_edge::possibly_call_in_translation_unit_p): Fix
      	availability comparison.
      
      From-SVN: r277627
      Martin Jambor committed
    • msp430.c (msp430_expand_helper): Support expansion of calls to __mspabi_mpy* functions. · 499a39af
      2019-10-30  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* config/msp430/msp430.c (msp430_expand_helper): Support expansion of
      	calls to __mspabi_mpy* functions.
      	* config/msp430/msp430.md (mulhisi3): New define_expand.
      	(umulhisi3): New define_expand.
      	(*mulhisi3_inline): Use old mulhisi3 define_insn.
      	(*umulhisi3_inline): Use old umulhisi3 define_insn.
      
      From-SVN: r277624
      Jozef Lawrynowicz committed
    • msp430.c (msp430_check_index_not_high_mem): New. · 0149b1b4
      gcc/ChangeLog:
      
      2019-10-30  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* config/msp430/msp430.c (msp430_check_index_not_high_mem): New.
      	(msp430_check_plus_not_high_mem): New.
      	(msp430_op_not_in_high_mem): Use new functions to check if the operand
      	might be in low memory.
      	Indicate that a 16-bit absolute address is in lower memory.
      
      gcc/testsuite/ChangeLog:
      
      2019-10-30  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* gcc.target/msp430/mlarge-use-430-insn.c: New test.
      
      From-SVN: r277623
      Jozef Lawrynowicz committed
    • Fix a call to ultimate_alias_target · d7caa129
      2019-10-30  Martin Jambor  <mjambor@suse.cz>
      
      	* ipa-prop.c (ipa_compute_jump_functions_for_bb): Fix the call to
      	ultimate_alias_target.
      
      From-SVN: r277622
      Martin Jambor committed
    • re PR tree-optimization/92275 (ICE: error: definition in block 11 does not… · b81f2daf
      re PR tree-optimization/92275 (ICE: error: definition in block 11 does not dominate use in block 15 since r277566)
      
      2019-10-30  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/92275
      	* tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_loops):
      	Copy all loop-closed PHIs.
      
      	* gcc.dg/torture/pr92275.c: New testcase.
      
      From-SVN: r277621
      Richard Biener committed
    • * g++.dg/gomp/declare-variant-6.C: New test. · 095578b5
      From-SVN: r277620
      Jakub Jelinek committed
    • Use const_tree more in IPA ICF. · 3f85ff83
      2019-10-30  Martin Liska  <mliska@suse.cz>
      
      	* ipa-icf-gimple.c (func_checker::compare_ssa_name): Use
      	const_tree as function argument.
      	(func_checker::compare_decl): Likewise.
      	(func_checker::operand_equal_p): Likewise.
      	(func_checker::compare_variable_decl): Likewise.
      	(func_checker::parse_labels): Likewise.
      	* ipa-icf-gimple.h: Likewise.
      
      From-SVN: r277619
      Martin Liska committed
    • Remove alias set comparison. · fc0e67aa
      2019-10-30  Martin Liska  <mliska@suse.cz>
      
      	* ipa-icf-gimple.c (func_checker::compatible_types_p):
      	Do not compare alias sets.  It's handled by operand_equal_p.
      2019-10-30  Martin Liska  <mliska@suse.cz>
      
      	* c-c++-common/Wstringop-truncation-4.c: Disable IPA ICF.
      	* gcc.dg/tree-ssa/pr64910-2.c: Likewise.
      	* gcc.dg/tree-ssa/pr79352.c: Likewise.
      
      From-SVN: r277618
      Martin Liska committed
    • Remove comparison for polymorphic types. · 430d1e8d
      2019-10-30  Martin Liska  <mliska@suse.cz>
      
      	* ipa-icf-gimple.c (func_checker::func_checker): Do not
      	initialize m_compare_polymorphic.
      	(func_checker::compare_decl): Do not compare polymorphic types.
      	* ipa-icf-gimple.h (m_compare_polymorphic): Remove.
      	* ipa-icf.c (sem_function::equals_private): Do not call
      	compare_polymorphic_p.
      
      From-SVN: r277617
      Martin Liska committed
    • IPA ICF: remove dead code · 938bba61
      2019-10-30  Martin Liska  <mliska@suse.cz>
      
      	* ipa-icf-gimple.c (func_checker::compare_ssa_name): Call
      	compare_operand.
      	(func_checker::compare_memory_operand): Remove.
      	(func_checker::compare_cst_or_decl): Remove.
      	(func_checker::operand_equal_valueize): Do not handle
      	FIELD_DECL.
      	(func_checker::compare_gimple_call): Call compare_operand.
      	(func_checker::compare_gimple_assign): Likewise.
      	* ipa-icf-gimple.h: Remove compare_cst_or_decl.
      	* ipa-icf.c (sem_function::icf_handled_component_p): Remove.
      	* ipa-icf.h (icf_handled_component_p): Remove.
      
      From-SVN: r277616
      Martin Liska committed
    • Integrate that for IPA ICF. · 8a319aa3
      2019-10-30  Martin Liska  <mliska@suse.cz>
      
      	* ipa-icf-gimple.c (func_checker::hash_operand): New.
      	(func_checker::compare_cst_or_decl): Remove handling
      	of FIELD_DECL.
      	(func_checker::compare_operand): Transform to ...
      	(func_checker::operand_equal_p): ... this.
      	* ipa-icf-gimple.h (class func_checker): Add
      	operand_equal_p and hash_operand.
      	* ipa-icf.c (sem_function::equals_private): Fix
      	pushing and popping of cfun.
      
      From-SVN: r277615
      Martin Liska committed
    • Come up with an abstraction. · 7f4a8ee0
      2019-10-30  Martin Liska  <mliska@suse.cz>
      
      	* fold-const.c (operand_equal_p): Move to ...
      	(operand_compare::operand_equal_p): ... here.
      	(operand_compare::verify_hash_value): New.
      	(add_expr): Move to ...
      	(operand_compare::hash_operand): ... here.
      	* fold-const.h (operand_equal_p): Move to the class.
      	(class operand_compare): New.
      	* tree.c (add_expr): Remove.
      
      From-SVN: r277614
      Martin Liska committed
    • cp-tree.h (omp_declare_variant_finalize, [...]): Declare. · 42ceec06
      	* cp-tree.h (omp_declare_variant_finalize, build_local_temp): Declare.
      	* decl.c: Include omp-general.h.
      	(declare_simd_adjust_this): Add forward declaration.
      	(omp_declare_variant_finalize_one, omp_declare_variant_finalize): New
      	function.
      	(cp_finish_decl, finish_function): Call omp_declare_variant_finalize.
      	* parser.c (cp_finish_omp_declare_variant): Adjust parsing of the
      	variant id-expression and propagate enough information to
      	omp_declare_variant_finalize_one in the attribute so that it can
      	finalize it.
      	* class.c (finish_struct): Call omp_declare_variant_finalize.
      	* tree.c (build_local_temp): No longer static, remove forward
      	declaration.
      
      	* c-c++-common/gomp/declare-variant-2.c: Add a test with , before
      	match clause.
      	* c-c++-common/gomp/declare-variant-6.c: Expect diagnostics also from
      	C++ FE and adjust regexp so that it handles C++ pretty printing of
      	function names.
      	* g++.dg/gomp/declare-variant-1.C: New test.
      	* g++.dg/gomp/declare-variant-2.C: New test.
      	* g++.dg/gomp/declare-variant-3.C: New test.
      	* g++.dg/gomp/declare-variant-4.C: New test.
      	* g++.dg/gomp/declare-variant-5.C: New test.
      
      From-SVN: r277613
      Jakub Jelinek committed
    • operand_equal_p: add support for OBJ_TYPE_REF. · 96e05bf5
      2019-10-30  Martin Liska  <mliska@suse.cz>
      
      	* fold-const.c (operand_equal_p): Support OBJ_TYPE_REF.
      	* tree.c (add_expr): Hash parts of OBJ_TYPE_REF.
      
      From-SVN: r277612
      Martin Liska committed
    • typeck.c (cp_build_modify_expr): Prefer error + inform to error + error in one place. · 0f928153
      /cp
      2019-10-30  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* typeck.c (cp_build_modify_expr): Prefer error + inform to
      	error + error in one place.
      	(get_delta_difference_1): Likewise.
      	(get_delta_difference): Likewise, in two places.
      
      /testsuite
      2019-10-30  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/conversion/ptrmem2.C: Adjust for error + inform.
      	* g++.dg/gomp/tpl-atomic-2.C: Likewise.
      
      From-SVN: r277610
      Paolo Carlini committed
    • libgomp/testsuite – use 'stop' · c425e66b
      	libgomp/
      	* testsuite/libgomp.fortran/: Replace 'STOP' by 'stop'.
      
      From-SVN: r277609
      Tobias Burnus committed