Hi!

On Wed, 15 Mar 2017 07:21:26 -0700, Cesar Philippidis <ce...@codesourcery.com> 
wrote:
> This patch backports Jakub's Fortran OMP 4.5 changes to gomp-4_0-branch.
> The original patch may be found here
> <https://gcc.gnu.org/ml/gcc-patches/2016-11/msg00930.html>. I've applied
> it to gomp-4_0-branch.

> --- a/gcc/fortran/openmp.c
> +++ b/gcc/fortran/openmp.c

> @@ -835,6 +1122,19 @@ gfc_match_omp_clauses (gfc_omp_clauses **cp, uint64_t 
> mask,

> +       if ((mask & OMP_CLAUSE_DELETE)
> +           && gfc_match ("delete ( ") == MATCH_YES
> +           && gfc_match_omp_map_clause (&c->lists[OMP_LIST_MAP],
> +                                        OMP_MAP_DELETE, openacc,
> +                                        allow_derived))
> +         continue;

I noticed that in that backport, the handling of the OpenACC delete
clause (harmlessly) got duplicated.  Cleaned up on gomp-4_0-branch in
r248146:

commit 3463026a7bfd6e704454d3ce8489d3b6b5295ab5
Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Wed May 17 11:37:00 2017 +0000

    Clean up handling of Fortran OpenACC delete clause
    
            gcc/fortran/
            * openmp.c (gfc_match_omp_clauses): Handle "OMP_CLAUSE_DELETE"
            just once.
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@248146 
138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/fortran/ChangeLog.gomp | 5 +++++
 gcc/fortran/openmp.c       | 7 +------
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git gcc/fortran/ChangeLog.gomp gcc/fortran/ChangeLog.gomp
index 0f7c5d2..03bc82e 100644
--- gcc/fortran/ChangeLog.gomp
+++ gcc/fortran/ChangeLog.gomp
@@ -1,3 +1,8 @@
+2017-05-17  Thomas Schwinge  <tho...@codesourcery.com>
+
+       * openmp.c (gfc_match_omp_clauses): Handle "OMP_CLAUSE_DELETE"
+       just once.
+
 2017-05-16  Chung-Lin Tang  <clt...@codesourcery.com>
 
        * gfortran.h (struct gfc_omp_clauses): Add 'finalize:1' bitfield.
diff --git gcc/fortran/openmp.c gcc/fortran/openmp.c
index 1734b7c..0992f0a 100644
--- gcc/fortran/openmp.c
+++ gcc/fortran/openmp.c
@@ -1117,11 +1117,6 @@ gfc_match_omp_clauses (gfc_omp_clauses **cp, omp_mask 
mask,
            continue;
          break;
        case 'd':
-         if ((mask & OMP_CLAUSE_DELETE)
-             && gfc_match ("delete ( ") == MATCH_YES
-             && gfc_match_omp_map_clause (&c->lists[OMP_LIST_MAP],
-                                          OMP_MAP_DELETE, true, allow_derived))
-           continue;
          if ((mask & OMP_CLAUSE_DEFAULT)
              && c->default_sharing == OMP_DEFAULT_UNKNOWN)
            {
@@ -1154,7 +1149,7 @@ gfc_match_omp_clauses (gfc_omp_clauses **cp, omp_mask 
mask,
          if ((mask & OMP_CLAUSE_DELETE)
              && gfc_match ("delete ( ") == MATCH_YES
              && gfc_match_omp_map_clause (&c->lists[OMP_LIST_MAP],
-                                          OMP_MAP_DELETE, openacc,
+                                          OMP_MAP_DELETE, true,
                                           allow_derived))
            continue;
          if ((mask & OMP_CLAUSE_DEPEND)


Grüße
 Thomas

Reply via email to