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