From 8f25491c47f521bb0de2d9eb62f6d31f239ea1f0 Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Wed, 13 Oct 2021 17:49:36 +0200 Subject: [PATCH] Fortran: dump-parse-tree.c fixes for OpenMP gcc/fortran/ChangeLog: * dump-parse-tree.c (show_omp_clauses): Handle ancestor modifier, avoid ICE for GFC_OMP_ATOMIC_SWAP. * gfortran.h (gfc_omp_clauses): Change 'anecestor' into a bitfield. (cherry picked from commit 77c7abe3588d407ed820224f8d1b1a17a16831a0) --- gcc/fortran/ChangeLog.omp | 9 +++++++++ gcc/fortran/dump-parse-tree.c | 4 +++- gcc/fortran/gfortran.h | 3 +-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/gcc/fortran/ChangeLog.omp b/gcc/fortran/ChangeLog.omp index 207a8f6bdc1d..fa74abad9e2c 100644 --- a/gcc/fortran/ChangeLog.omp +++ b/gcc/fortran/ChangeLog.omp @@ -1,3 +1,12 @@ +2021-10-13 Tobias Burnus + + Backported from master: + 2021-10-13 Tobias Burnus + + * dump-parse-tree.c (show_omp_clauses): Handle ancestor modifier, + avoid ICE for GFC_OMP_ATOMIC_SWAP. + * gfortran.h (gfc_omp_clauses): Change 'anecestor' into a bitfield. + 2021-10-12 Tobias Burnus Backported from master: diff --git a/gcc/fortran/dump-parse-tree.c b/gcc/fortran/dump-parse-tree.c index f7b74f78e463..d99a51705539 100644 --- a/gcc/fortran/dump-parse-tree.c +++ b/gcc/fortran/dump-parse-tree.c @@ -1748,6 +1748,8 @@ show_omp_clauses (gfc_omp_clauses *omp_clauses) if (omp_clauses->device) { fputs (" DEVICE(", dumpfile); + if (omp_clauses->ancestor) + fputs ("ANCESTOR:", dumpfile); show_expr (omp_clauses->device); fputc (')', dumpfile); } @@ -1892,7 +1894,7 @@ show_omp_clauses (gfc_omp_clauses *omp_clauses) if (omp_clauses->atomic_op != GFC_OMP_ATOMIC_UNSET) { const char *atomic_op; - switch (omp_clauses->atomic_op) + switch (omp_clauses->atomic_op & GFC_OMP_ATOMIC_MASK) { case GFC_OMP_ATOMIC_READ: atomic_op = "READ"; break; case GFC_OMP_ATOMIC_WRITE: atomic_op = "WRITE"; break; diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h index be11da62d2a6..510c5eed4bd6 100644 --- a/gcc/fortran/gfortran.h +++ b/gcc/fortran/gfortran.h @@ -1484,12 +1484,11 @@ typedef struct gfc_omp_clauses struct gfc_expr *dist_chunk_size; struct gfc_expr *message; const char *critical_name; - bool ancestor; enum gfc_omp_default_sharing default_sharing; enum gfc_omp_atomic_op atomic_op; enum gfc_omp_defaultmap defaultmap[OMP_DEFAULTMAP_CAT_NUM]; int collapse, orderedc; - unsigned nowait:1, ordered:1, untied:1, mergeable:1; + unsigned nowait:1, ordered:1, untied:1, mergeable:1, ancestor:1; unsigned inbranch:1, notinbranch:1, nogroup:1; unsigned sched_simd:1, sched_monotonic:1, sched_nonmonotonic:1; unsigned simd:1, threads:1, depend_source:1, destroy:1, order_concurrent:1; -- 2.47.2