1. 21 Nov, 2019 25 commits
    • Add more markup to vect-alias-check-{1,18}.c (PR 92543) · 91f161b0
      In vect-alias-check-1.c we unroll the inner loop and then vectorise
      the stores at a[c + 1][b].  Since the access has no guaranteed
      alignemnt, we need a realignment mechanism or support for unaligned
      accesses in order to vectorise.
      
      In vect-alias-check-18.c we use a reverse access and so need
      permute support in order to vectorise.
      
      I'm not really sure when this part of the testsuite prefers
      { xfail { ! foo } } and when it prefers { target foo }.  xfail
      seems like the most common choice for the alignment restriction,
      whereas vect_int and vect_perm are mostly dg-require-effective-target
      style features, so I went with that combination.
      
      2019-11-21  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/testsuite/
      	PR testsuite/92543
      	* gcc.dg/vect/vect-alias-check-1.c: XFAIL the alias check message
      	if there is no realignment support and no support for unaligned
      	accesses.
      	* gcc.dg/vect/vect-alias-check-18.c: Restrict the test for the
      	alias message to targets that have permute support.
      
      From-SVN: r278591
      Richard Sandiford committed
    • Add missing VECTOR_MODE_P checks (PR 92595) · 934f135b
      This patch fixes some cases in which we weren't checking whether we had
      a vector mode before calling related_vector_mode or before making vector
      optab queries.
      
      2019-11-21  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	PR tree-optimization/92595
      	* tree-vect-stmts.c (get_group_load_store_type): Add a VECTOR_MODE_P
      	check.
      	(vectorizable_store, vectorizable_load): Likewise.
      
      gcc/testsuite/
      	PR tree-optimization/92595
      	* g++.dg/vect/pr92595.cc: New test.
      
      From-SVN: r278590
      Richard Sandiford committed
    • [GCC][ARM]: Fix the failing ACLE testcase with correct test directive. · 82399335
      
      Hello,
      
      This patch fixes arm acle testcase crc_hf_1.c by modifying the compiler
      options directive.
      
      Regression tested on arm-none-eabi and found no regressions.
      
      Ok for trunk? If ok, please commit on my behalf, I don't have the commit
      rights.
      
      Thanks,
      Srinath.
      
      Applied on behalf of Srinath.
      
      gcc/testsuite/ChangeLog:
      
      2019-11-21  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
      
      	* gcc.target/arm/acle/crc_hf_1.c: Modify the compiler options directive
      	from dg-options to dg-additional-options.
      
      From-SVN: r278588
      Srinath Parvathaneni committed
    • Fix failures on Solaris with -fno-common default · b8e72446
      	gcc/testsuite:
      	* gcc.c-torture/execute/20030913-1.c: Rename glob to g.
      	* gcc.c-torture/execute/960218-1.c: Rename glob to gl.
      	* gcc.c-torture/execute/complex-6.c: Rename err to e.
      	* gcc.dg/torture/ssa-pta-fn-1.c: Rename glob to g.
      
      	libgomp:
      	* testsuite/libgomp.c/pr39591-1.c: Rename err to e.
      	* testsuite/libgomp.c/pr39591-2.c: Likewise.
      	* testsuite/libgomp.c/pr39591-3.c: Likewise.
      	* testsuite/libgomp.c/private-1.c: Likewise.
      	* testsuite/libgomp.c/task-1.c: Likewise.
      	* testsuite/libgomp.c/task-5.c: Renamed err to serr.
      
      From-SVN: r278571
      Rainer Orth committed
    • PR c++/92450 - ICE with invalid nested name specifier. · 523cfd52
      	* parser.c (cp_parser_member_declaration): Don't attempt to print
      	erroneous bit-field diagnostic if grokdeclarator returns
      	error_mark_node.
      
      	* g++.dg/parse/crash71.C: New test.
      
      From-SVN: r278570
      Marek Polacek committed
    • Avoid quadratic behaviour of update_callee_keys. · 7c6f2fb9
      	* ipa-inline.c (update_callee_keys): Add parameter UPDATE_SINCE.
      	(resolve_noninline_speculation, inline_small_functions): Avoid
      	redundant updates.
      
      From-SVN: r278566
      Jan Hubicka committed
    • Fix global_vars_f90_init test failure · 5f5e796c
      Add a missing extern to ensure the test passes with -fno-common change.
      Committed as obvious.
      
          testsuite/
      	* gfortran.dg/global_vars_f90_init_driver.c: Add missing extern.
      
      From-SVN: r278557
      Wilco Dijkstra committed
    • lra.c (lra_insn_recog_data_pool): New. · 033bd26e
      2019-11-21  Richard Biener  <rguenther@suse.de>
      
      	* lra.c (lra_insn_recog_data_pool): New.
      	(free_insn_recog_data): Adjust.
      	(finish_insn_recog_data): Release lra_insn_recog_data_pool.
      	(lra_set_insn_recog_data): Allocate from lra_insn_recog_data_pool.
      
      From-SVN: r278556
      Richard Biener committed
    • re PR tree-optimization/92596 (ICE in exact_div, at poly-int.h:2162 since r278406) · 7c327e2d
      2019-11-21  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/92596
      	* tree-vect-slp.c (vect_build_slp_tree): Fix pasto.
      
      	* gcc.dg/torture/pr92596-1.c: New testcase.
      
      From-SVN: r278555
      Richard Biener committed
    • Fix previous commit. · 9c572192
              * ipa-prop.h (ipa_release_agg_values): Add parameter RELEASE_VECTOR.
      
      From-SVN: r278554
      Jan Hubicka committed
    • ipa-fnsummary.c (evaluate_conditions_for_known_args): Be ready for some vectors… · b0d55476
      ipa-fnsummary.c (evaluate_conditions_for_known_args): Be ready for some vectors to not be allocated.
      
      
      	* ipa-fnsummary.c (evaluate_conditions_for_known_args): Be
      	ready for some vectors to not be allocated.
      	(evaluate_properties_for_edge): Document better; make
      	known_vals and known_aggs caller allocated; avoid determining
      	values of parameters which are not used.
      	(ipa_merge_fn_summary_after_inlining): Pre allocate known_vals and
      	known_aggs.
      	* ipa-inline-analysis.c (do_estimate_edge_time): Likewise.
      	(do_estimate_edge_size): Likewise.
      	(do_estimate_edge_hints): Likewise.
      	* ipa-cp.c (ipa_get_indirect_edge_target_1): Do not early exit when
      	values are not known.
      	(ipa_release_agg_values): Add option to not release vector itself.
      
      From-SVN: r278553
      Jan Hubicka committed
    • Testsuite: Fix fp-int-convert-timode-1.c testism. · 48ffab98
      The test fp-int-convert-timode-1.c uses FE_TONEAREST without
      actually checking if the target has defined it.
      
      Like the rest of the tests I now add a check to see if the target
      has actually implemented it.
      
      This fixed Arm newlib target failures.
      
      Regtested on aarch64-none-elf and aarch64_be-none-elf and no issues.
      
      Committed under the GCC obvious rules.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.dg/torture/fp-int-convert-timode-1.c: Add check for FE_TONEAREST.
      
      From-SVN: r278552
      Tamar Christina committed
    • cfgloop.h (loop_iterator::~loop_iterator): Remove. · d78b7095
      2019-11-21  Richard Biener  <rguenther@suse.de>
      
      	* cfgloop.h (loop_iterator::~loop_iterator): Remove.
      	(loop_iterator::to_visit): Use an auto_vec with internal storage.
      	(loop_iterator::loop_iterator): Adjust.
      	* cfganal.c (compute_dominance_frontiers_1): Fold into...
      	(compute_dominance_frontiers): ... this.  Hoist invariant
      	get_immediate_dominator call.
      	(compute_idf): Use a work-set instead of a work-list for more
      	optimal iteration order and duplicate avoidance.
      	* tree-into-ssa.c (mark_phi_for_rewrite): Avoid re-allocating
      	the vector all the time, instead pre-allocate the vector only
      	once.
      	(delete_update_ssa): Simplify.
      	* vec.h (va_heap::release): Disable -Wfree-nonheap-object around it.
      
      From-SVN: r278550
      Richard Biener committed
    • [AArch64] Add -fno-vect-cost-model to sve2/whilerw_1.c · e2a05fdf
      Bumping the cost of vec_to_scalar made the .s loop in
      gcc.target/aarch64/sve2/whilerw_1.c use a runtime profitability check,
      like the .d version already did.  Since the cost model isn't really
      being tested here, the most robust fix seemed to be to disable it,
      which I should really have done from the outset.
      
      2019-11-21  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/testsuite/
      	* gcc.target/aarch64/sve2/whilerw_1.c: Add -fno-vect-cost-model.
      	Require x0 in the .d test too.
      
      From-SVN: r278549
      Richard Sandiford committed
    • re PR tree-optimization/91355 (optimized code does not call destructor while… · 01a0fba6
      re PR tree-optimization/91355 (optimized code does not call destructor while unwinding after exception)
      
      	PR tree-optimization/91355
      	* tree-ssa-sink.c (select_best_block): Use >= rather than >
      	for early_bb scaled count with best_bb count comparison.
      
      	* g++.dg/torture/pr91355.C: New test.
      
      From-SVN: r278548
      Jakub Jelinek committed
    • [Darwin, testsuite] Fix fail of gnu2x-attrs-1.c. · 141793d5
      This test fails on targets without symbol alias support, but we don't
      want to skip it entirely with the usual dg-requires, thus expect the
      error on the alias line.
      
      gcc/testsuite/ChangeLog:
      
      2019-11-21  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* gcc.dg/gnu2x-attrs-1.c: Expect an error for the alias case
      	on Darwin.
      
      From-SVN: r278547
      Iain Sandoe committed
    • ipa-fnsummary.h (enum ipa_hints_vals): Fix comment typo, preffer -> prefer. · e4112065
      	* ipa-fnsummary.h (enum ipa_hints_vals): Fix comment typo,
      	preffer -> prefer.
      	* ipa-inline.c (edge_badness): Likewise.
      	* lto-streamer.h (class lto_location_cache): Likewise.
      	* tree-ssa-sink.c (select_best_block): Likewise.  Fix comment typos,
      	gratutious -> gratuitous.
      
      From-SVN: r278546
      Jakub Jelinek committed
    • revert: re PR tree-optimization/91790 (ICE: verify_ssa failed (error: definition… · a877996f
      revert: re PR tree-optimization/91790 (ICE: verify_ssa failed (error: definition in block 2 follows the use))
      
      2019-11-21  Richard Biener  <rguenther@suse.de>
      
      	Revert
      	2019-09-17  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/91790
      	* tree-vect-stmts.c (vectorizable_load): For BB vectorization
      	use the correct DR for setting up realignment.
      
      From-SVN: r278544
      Richard Biener committed
    • cfganal.c (pre_and_rev_post_order_compute_fn): Use an auto_bb_flag instead of an… · a3d2f8e2
      cfganal.c (pre_and_rev_post_order_compute_fn): Use an auto_bb_flag instead of an sbitmap for visited handling.
      
      2019-11-21  Richard Biener  <rguenther@suse.de>
      
      	* cfganal.c (pre_and_rev_post_order_compute_fn): Use an
      	auto_bb_flag instead of an sbitmap for visited handling.
      	* lra.c (lra_insn_recog_data_pool): New.
      	(free_insn_recog_data): Adjust.
      	(finish_insn_recog_data): Release lra_insn_recog_data_pool.
      	(lra_set_insn_recog_data): Allocate from lra_insn_recog_data_pool.
      	* tree-ssa-structalias.c (equiv_class_hasher): Change to nofree.
      	(equiv_class_obstack): New.
      	(equiv_class_lookup_or_add): Allocate from equiv_class_obstack.
      	(perform_var_substitution): Initialize equiv_class_obstack.
      	(free_var_substitution_info): Free equiv_class_obstack.
      
      From-SVN: r278543
      Richard Biener committed
    • Avoid quadratic behaviour of early inliner. · 49e26500
      	* ipa-inline.c (want_early_inline_function_p): Do not estimate
      	edge growth when callee function is very large.
      	* ipa-inline.h (estimate_min_edge_growth): New.
      
      From-SVN: r278542
      Jan Hubicka committed
    • Incremental updating of inline summaries. · d2bcf46c
              * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Allow
      	negative time in calls summary; correct roundoff errors
      	leading to negative times.
      	(ipa_merge_fn_summary_after_inlining): Update calls size time table
      	if present.
      	(ipa_update_overall_fn_summary): Add RESET parameter.
      	* ipa-fnsummary.h (ipa_update_overall_fn_summary): Update prototype.
      	* ipa-inline-transform.c (inline_call): Enable incremental updates.
      
      From-SVN: r278541
      Jan Hubicka committed
    • re PR go/92605 (r278509 causes/reveals issue in building go library) · b4b7464b
      	PR go/92605
          runtime: declare runtime_usestackmaps in stack.c, not runtime.h
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/208161
      
      From-SVN: r278540
      Ian Lance Taylor committed
    • mksysinfo: use type aliases for time struct field types · 025f56b7
          
          Also fix a case where grep wasn't redirecting to /dev/null.
          
          Fixes golang/go#35713
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/208160
      
      From-SVN: r278539
      Ian Lance Taylor committed
    • re PR c++/90842 (ICE in poplevel, at cp/decl.c:585) · b69d4d45
      	PR c++/90842
      	* parser.c (cp_parser_decl_specifier_seq): For concept or typedef
      	break early if CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR.
      	For type specifiers, set CP_PARSER_FLAGS_NO_TYPE_DEFINITIONS
      	if CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR is set.
      
      	* g++.dg/cpp1y/lambda-generic-90842.C: New test.
      
      Co-Authored-By: Jason Merrill <jason@redhat.com>
      
      From-SVN: r278538
      Jakub Jelinek committed
    • Daily bump. · f0a2c2c8
      From-SVN: r278537
      GCC Administrator committed
  2. 20 Nov, 2019 15 commits
    • Add test for PR c++/92443. · 3697264c
      	* g++.dg/cpp0x/constexpr-92443.C: New test.
      
      From-SVN: r278534
      Marek Polacek committed
    • Restore stmt def types after scheduling two-operation SLP · 0f6e9b29
      2019-11-20  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-vect-slp.c (vect_schedule_slp_instance): Restore stmt
      	def types for two-operation SLP.
      
      From-SVN: r278533
      Richard Sandiford committed
    • Restrict bb-slp-40.c to targets with VnQI addition (PR 92366) · 28cebdb1
      bb-slp-40.c fails on SPARC targets without VIS4 because it
      requires addition on vectors of bytes.  There doesn't seem to be
      an existing target selector for this, so I added vect_char_add.
      (Wasn't sure whether to use vect_char_add, for consistency
      with vect_no_int_add/vect_int_mult etc., or vect_add_char for
      consistency with vect_shift_char etc.)
      
      I took the target list from vect_int and removed targets that didn't
      seem to support the operation (namely sparc*, since we don't seem to
      have any test for VIS4, niagara7 or m8, and alpha*-*-*.)
      
      2019-11-20  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	PR testsuite/92366
      	* doc/sourcebuild.texi (vect_char_add): Document.
      
      gcc/testsuite/
      	PR testsuite/92366
      	* lib/target-supports.exp (check_effective_target_vect_char_add):
      	New proc.
      	* gcc.dg/vect/bb-slp-40.c: Require vect_char_add instead of vect_int.
      
      From-SVN: r278532
      Richard Sandiford committed
    • Adjust expected output for bb-slp-21.c (PR 92527) · be12e7c7
      After r278246, we can try building the out[] store value from scalars
      if the target has no multiplication support.  That's not necessarily
      a good thing, but like most of vect/, this test is run with the cost
      model disabled.
      
      2019-11-20  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/testsuite/
      	PR testsuite/92527
      	* gcc.dg/vect/bb-slp-21.c: Expect both SLP groups to be vectorized,
      	regardless of whether the target supports multiplication.
      
      From-SVN: r278531
      Richard Sandiford committed
    • typeck2.c (build_x_arrow): Early return if decay_conversion returns error_mark_node. · df265344
      /gcc
      2019-11-20  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* typeck2.c (build_x_arrow): Early return if decay_conversion
      	returns error_mark_node.
      
      /testsuite
      2019-11-20  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/parse/error43.C: Adjust expected error.
      
      From-SVN: r278530
      Paolo Carlini committed
    • drop attempt to reuse cgraph callees for -fcallgraph-info · c013852d
      The information in cgraph callees is released long before we get to
      the point in which -fcallgraph-info edges are dumped, or even
      expanded.  It doesn't make sense to retain it longer: the edges
      created for -fcallgraph-info are much smaller, and they don't even
      coexist, so not even peak use grows.
      
      
      for  gcc/ChangeLog
      
      	* function.h (CALLEE_FROM_CGRAPH_P): Remove.
      	* function.c (record_final_call): Record even calls that might
      	have been in the cgraph.
      	* toplev.c (dump_final_node_vcg): Skip iteration over cgraph
      	callees.
      
      From-SVN: r278529
      Alexandre Oliva committed
    • Switch gcc ftp URL's to https · aeebd94c
      The FTP protocol is getting long in the tooth, and we should emphasize
      HTTPS where that is available. This patch changes various gcc.gnu.org
      URL's to instead use HTTPS.
      
      For instance, kernel.org shut down FTP access in 2017, with the
      explanation:
      
      - The protocol is inefficient and requires adding awkward kludges to
        firewalls and load-balancing daemons
      - FTP servers have no support for caching or accelerators, which has
        significant performance impacts
      - Most software implementations have stagnated and see infrequent
        updates
      
      ChangeLog:
      
      2019-11-20  Janne Blomqvist  <jb@gcc.gnu.org>
      
              * configure.ac: Use https for gcc.gnu.org.
              * configure: Regenerated.
      
      gcc/ChangeLog:
      
      2019-11-20  Janne Blomqvist  <jb@gcc.gnu.org>
      
              * configure.ac: Use https for gcc.gnu.org.
              * configure: Regenerated.
              * doc/install.texi: Use https for gcc.gnu.org.
              * doc/sourcebuild.texi: Likewise.
      
      gcc/testsuite/ChangeLog:
      
      2019-11-20  Janne Blomqvist  <jb@gcc.gnu.org>
      
              * README: Use https for gcc.gnu.org.
      
      libstdc++-v3/ChangeLog:
      
      2019-11-20  Janne Blomqvist  <jb@gcc.gnu.org>
      
              * doc/html/api.html: Use https for gcc.gnu.org.
              * doc/xml/api.xml: Likewise.
      
      maintainer-scripts/ChangeLog:
      
      2019-11-20  Janne Blomqvist  <jb@gcc.gnu.org>
      
              * gcc_release: Use https for gcc.gnu.org.
      
      From-SVN: r278526
      Janne Blomqvist committed
    • PR 92463 MPFR modernization: Revert r269139 · acb156cc
      Commit r269139 fixed an accidental dependency on MPFR 3.0. As we now
      require at least MPFR 3.1.0+ we can revert it and instead use the
      simpler MPFR 3.0+ code.
      
      ChangeLog entry of the original commit was:
      
      2019-02-23  David Malcolm  <dmalcolm@redhat.com>
                  Jakub Jelinek  <jakub@redhat.com>
      
              PR middle-end/88074
              * simplify.c (norm2_do_sqrt, gfc_simplify_norm2): Use
              mpfr_number_p && !mpfr_zero_p instead of mpfr_regular_p.
              (norm2_add_squared): Likewise.  Use mp_exp_t rather than mpfr_exp_t.
      
      ChangeLog for this commit:
      
      2019-11-20  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/92463
      	Revert r269139
      	* simplify.c (norm2_do_sqrt, gfc_simplify_norm2): Use
      	mpfr_regular_p instead of mpfr_number_p && !mpfr_zero_p.
      	(norm2_add_squared): Likewise.  Use mpfr_exp_t rather than
      	mp_exp_t.
      
      From-SVN: r278525
      Janne Blomqvist committed
    • PR 92463 MPFR modernization in GFortran · c9d4cc5d
      Now that we require a minimum of MPFR 3.1.0+ to build GCC, we can do
      some modernization of the MPFR usage in the GFortran frontend.
      
      This patch replaces
      
      1) GMP_RND* with MPFR_RND*
      
      2) mp_exp_t with mpfr_exp_t
      
      3) mp_prec_t with mpfr_prec_t
      
      4) mp_rnd_t with mpfr_rnd_t
      
      gcc/fortran/ChangeLog:
      
      2019-11-20  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/92463
      	* arith.c (gfc_mpfr_to_mpz): Change mp_exp_t to mpfr_exp_t.
      	(gfc_check_real_range): Likewise.
      	* gfortran.h (GFC_RND_MODE): Change GMP_RNDN to MPFR_RNDN.
      	* module.c (mio_gmp_real): Change mp_exp_t to mpfr_exp_t.
      	* simplify.c (degrees_f): Change mp_rnd_t to mpfr_rnd_t.
      	(radians_f): Likewise.
      	(fullprec_erfc_scaled): Change mp_prec_t to mpfr_prec_t.
      	(asympt_erfc_scaled): Likewise.
      	(gfc_simplify_nearest): Change mp_exp_t to mpfr_exp_t, and
      	GMP_RND* to MPFR_RND*.
      
      From-SVN: r278523
      Janne Blomqvist committed
    • [AArch64] Fix vrbit_1.c test failure · 64eb1c82
      The vrbit_1 test which was missing a flag to disable code sharing.
      Committed as obvious.
      
          testsuite/
      	* gcc.target/aarch64/simd/vrbit_1.c: Add -fno-ipa-icf.
      
      From-SVN: r278519
      Wilco Dijkstra committed
    • AMD GCN symbol output with null cfun · 9200b53a
      	gcc/
      	* config/gcn/gcn.c (gcn_asm_output_symbol_ref): Handle null cfun.
      
      Reviewed-by: Andrew Stubbs <ams@codesourcery.com>
      
      From-SVN: r278518
      Julian Brown committed
    • AMD GCN libgomp plugin queue-full condition locking fix · d88b27da
      	libgomp/
      	* plugin/plugin-gcn.c (wait_for_queue_nonfull): Don't lock/unlock
      	aq->mutex here.
      	(queue_push_launch): Lock aq->mutex before calling
      	wait_for_queue_nonfull.
      	(queue_push_callback): Likewise.
      	(queue_push_asyncwait): Likewise.
      	(queue_push_placeholder): Likewise.
      
      Reviewed-by: Andrew Stubbs <ams@codesourcery.com>
      
      From-SVN: r278517
      Julian Brown committed
    • Fix host-to-device copies from rodata for AMD GCN · 8d2f4ddf
      	libgomp/
      	* plugin/plugin-gcn.c (hsa_memory_copy_wrapper): New.
      	(copy_data, GOMP_OFFLOAD_host2dev): Use above function.
      	(GOMP_OFFLOAD_dev2host, GOMP_OFFLOAD_dev2dev): Check hsa_memory_copy
      	return code.
      
      Reviewed-by: Andrew Stubbs <ams@codesourcery.com>
      
      From-SVN: r278516
      Julian Brown committed
    • jit: fix ICE with GCC_JIT_BOOL_OPTION_SELFCHECK_GC since r278084 (PR jit/92483) · 56e04525
      Since r278084 (part of the params refactoring), most of libgccjit's
      test suite has been ICEing.
      
      The root cause is that jit-playback.c injects params to its fake_args
      here:
      
        /* Aggressively garbage-collect, to shake out bugs: */
        if (get_bool_option (GCC_JIT_BOOL_OPTION_SELFCHECK_GC))
          {
            ADD_ARG ("--param");
            ADD_ARG ("ggc-min-expand=0");
            ADD_ARG ("--param");
            ADD_ARG ("ggc-min-heapsize=0");
          }
      
      (building a vec of char * where the char * are allocated using xstrdup)
      
      and r278084 added this logic to decode_cmdline_options_to_array:
      
      964	      /* Interpret "--param" "key=name" as "--param=key=name".  */
      965	      const char *needle = "--param";
      966	      if (i + 1 < argc && strcmp (opt, needle) == 0)
      967		{
      968		  const char *replacement
      969		    = opts_concat (needle, "=", argv[i + 1], NULL);
      970		  argv[++i] = replacement;
      971		}
      
      Note that at line 970 it manipulates the argv in-place, inserting a
      new option allocated with opts_concat, which uses opts_obstack
      (itself initialized from toplev::main).
      
      jit-playback.c cleans up its fake arguments using "free", at which
      point we have a free of the middle of an obstack and an ICE.
      
      This patch fixes the issue by using the new syntax for the params.
      
      Fixes all 60 FAILs in jit.sum, restoring the number of PASS results
      from 2033 to 10469.
      
      gcc/jit/ChangeLog:
      	PR jit/92483
      	* jit-playback.c (gcc::jit::playback::context::make_fake_args):
      	Update GCC_JIT_BOOL_OPTION_SELFCHECK_GC for new --param syntax.
      
      From-SVN: r278515
      David Malcolm committed
    • OpenACC "present" subarrays: runtime API return value and unmapping fixes · e307b05f
      	PR libgomp/92511
      
      	libgomp/
      	* oacc-mem.c (present_create_copy): Fix device pointer return value in
      	case of "present" subarray.  Use tgt->tgt_start instead of tgt->to_free
      	in non-present/create case.
      	(delete_copyout): Change error condition to fail only on copies outside
      	of mapped block.  Adjust error message accordingly.
      	* testsuite/libgomp.oacc-c-c++-common/copyin-devptr-1.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/copyin-devptr-2.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/lib-20.c: Adjust expected error
      	message.
      	* testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-22.c: Allow test to pass now.
      	* testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
      
      Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>
      
      From-SVN: r278514
      Julian Brown committed