diff options
author | Tobias Burnus <tburnus@baylibre.com> | 2024-08-01 09:06:32 +0200 |
---|---|---|
committer | Tobias Burnus <tburnus@baylibre.com> | 2024-08-01 09:06:32 +0200 |
commit | c99cdcab4f1c497a872cf552138fd8ea27e9a5eb (patch) | |
tree | bed53376395653556c931ff102aeb24bdf12e9ec /gcc/gimplify.cc | |
parent | 25dba615e3c191f0a7264538b6d260e91ca2624a (diff) | |
download | gcc-c99cdcab4f1c497a872cf552138fd8ea27e9a5eb.zip gcc-c99cdcab4f1c497a872cf552138fd8ea27e9a5eb.tar.gz gcc-c99cdcab4f1c497a872cf552138fd8ea27e9a5eb.tar.bz2 |
omp-offload.cc: Fix value-expr handling of 'declare target link' vars [PR115637]
As the PR and included testcase shows, replacing 'arr2' by its value expression
'*arr2$13$linkptr' failed for
MEM <uint128_t> [(c_char * {ref-all})&arr2]
which left 'arr2' in the code as unknown symbol. Now expand the value expression
already in pass_omp_target_link::execute's process_link_var_op walk_gimple_stmt
walk - and don't rely on gimple_regimplify_operands.
PR middle-end/115637
gcc/ChangeLog:
* gimplify.cc (gimplify_body): Fix macro name in the comment.
* omp-offload.cc (find_link_var_op): Rename to ...
(process_link_var_op): ... this. Replace value expr.
(pass_omp_target_link::execute): Update walk_gimple_stmt call.
libgomp/ChangeLog:
* testsuite/libgomp.fortran/declare-target-link.f90: Uncomment
now working code.
Co-authored-by: Richard Biener <rguenther@suse.de
Diffstat (limited to 'gcc/gimplify.cc')
-rw-r--r-- | gcc/gimplify.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/gimplify.cc b/gcc/gimplify.cc index c77a53bd..30bfecf 100644 --- a/gcc/gimplify.cc +++ b/gcc/gimplify.cc @@ -19423,7 +19423,7 @@ gimplify_body (tree fndecl, bool do_parms) DECL_SAVED_TREE (fndecl) = NULL_TREE; /* If we had callee-copies statements, insert them at the beginning - of the function and clear DECL_VALUE_EXPR_P on the parameters. */ + of the function and clear DECL_HAS_VALUE_EXPR_P on the parameters. */ if (!gimple_seq_empty_p (parm_stmts)) { tree parm; |