aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2023-10-20 15:49:35 +0200
committerThomas Schwinge <tschwinge@baylibre.com>2024-03-14 15:41:57 +0100
commit473c6123ffad38dddef7b126bf97971784d94b40 (patch)
tree671836430cb6a67d9c3b8755fff559c7fe2c5013 /gcc/fortran
parent25242ed8eb93613af6f296785da2d4ece816b7d6 (diff)
downloadgcc-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.cc6
-rw-r--r--gcc/fortran/openmp.cc1
-rw-r--r--gcc/fortran/trans-openmp.cc2
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;
}