]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fortran: dump-parse-tree.c fixes for OpenMP
authorTobias Burnus <tobias@codesourcery.com>
Wed, 13 Oct 2021 15:49:36 +0000 (17:49 +0200)
committerTobias Burnus <tobias@codesourcery.com>
Wed, 13 Oct 2021 15:49:36 +0000 (17:49 +0200)
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
gcc/fortran/dump-parse-tree.c
gcc/fortran/gfortran.h

index 207a8f6bdc1dc5452cd59fcd044acc1362176253..fa74abad9e2c9bb9b6a09e9c75c9eb91ebe6a78a 100644 (file)
@@ -1,3 +1,12 @@
+2021-10-13  Tobias Burnus  <tobias@codesourcery.com>
+
+       Backported from master:
+       2021-10-13  Tobias Burnus  <tobias@codesourcery.com>
+
+       * 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  <tobias@codesourcery.com>
 
        Backported from master:
index f7b74f78e46384c7005a3f3a997acbb99d9a42aa..d99a51705539717eb2658cc893ac81591b38fdc6 100644 (file)
@@ -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;
index be11da62d2a6171f464ea2bf561ff4487d47c9cd..510c5eed4bd6620bb4eaf6d57de02ac4462e7caa 100644 (file)
@@ -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;