diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2023-10-20 15:49:35 +0200 |
---|---|---|
committer | Thomas Schwinge <tschwinge@baylibre.com> | 2024-03-14 15:41:57 +0100 |
commit | 473c6123ffad38dddef7b126bf97971784d94b40 (patch) | |
tree | 671836430cb6a67d9c3b8755fff559c7fe2c5013 /gcc/fortran | |
parent | 25242ed8eb93613af6f296785da2d4ece816b7d6 (diff) | |
download | gcc-473c6123ffad38dddef7b126bf97971784d94b40.zip gcc-473c6123ffad38dddef7b126bf97971784d94b40.tar.gz gcc-473c6123ffad38dddef7b126bf97971784d94b40.tar.bz2 |
Minor fixes for OpenACC/Fortran 'self' clause for compute constructs
... to fix up recent commit 3a3596389c2e539cb8fd5dc5784a4e2afe193a2a
"OpenACC 2.7: Implement self clause for compute constructs".
gcc/fortran/
* dump-parse-tree.cc (show_omp_clauses): Handle 'self_expr'.
* openmp.cc (gfc_free_omp_clauses): Likewise.
* trans-openmp.cc (gfc_split_omp_clauses): Don't handle 'self_expr'.
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/dump-parse-tree.cc | 6 | ||||
-rw-r--r-- | gcc/fortran/openmp.cc | 1 | ||||
-rw-r--r-- | gcc/fortran/trans-openmp.cc | 2 |
3 files changed, 7 insertions, 2 deletions
diff --git a/gcc/fortran/dump-parse-tree.cc b/gcc/fortran/dump-parse-tree.cc index db84b06..7bc7866 100644 --- a/gcc/fortran/dump-parse-tree.cc +++ b/gcc/fortran/dump-parse-tree.cc @@ -1619,6 +1619,12 @@ show_omp_clauses (gfc_omp_clauses *omp_clauses) show_expr (omp_clauses->if_exprs[i]); fputc (')', dumpfile); } + if (omp_clauses->self_expr) + { + fputs (" SELF(", dumpfile); + show_expr (omp_clauses->self_expr); + fputc (')', dumpfile); + } if (omp_clauses->final_expr) { fputs (" FINAL(", dumpfile); diff --git a/gcc/fortran/openmp.cc b/gcc/fortran/openmp.cc index 5c44e66..315ec68 100644 --- a/gcc/fortran/openmp.cc +++ b/gcc/fortran/openmp.cc @@ -164,6 +164,7 @@ gfc_free_omp_clauses (gfc_omp_clauses *c) gfc_free_expr (c->if_expr); for (i = 0; i < OMP_IF_LAST; i++) gfc_free_expr (c->if_exprs[i]); + gfc_free_expr (c->self_expr); gfc_free_expr (c->final_expr); gfc_free_expr (c->num_threads); gfc_free_expr (c->chunk_size); diff --git a/gcc/fortran/trans-openmp.cc b/gcc/fortran/trans-openmp.cc index 7a088ec..f867e22 100644 --- a/gcc/fortran/trans-openmp.cc +++ b/gcc/fortran/trans-openmp.cc @@ -6840,8 +6840,6 @@ gfc_split_omp_clauses (gfc_code *code, /* And this is copied to all. */ clausesa[GFC_OMP_SPLIT_TARGET].if_expr = code->ext.omp_clauses->if_expr; - clausesa[GFC_OMP_SPLIT_TARGET].self_expr - = code->ext.omp_clauses->self_expr; clausesa[GFC_OMP_SPLIT_TARGET].nowait = code->ext.omp_clauses->nowait; } |