diff options
author | Julian Brown <julian@codesourcery.com> | 2019-06-19 00:15:53 +0200 |
---|---|---|
committer | Thomas Schwinge <tschwinge@gcc.gnu.org> | 2019-06-19 00:15:53 +0200 |
commit | 8701b671ee19eaf54c4fc67d27ed0a2b57467f94 (patch) | |
tree | 30ff0cdb6ba77d92c5ba2292110c14ad0c97a231 /gcc/fortran | |
parent | ca8ecd919453664b1312e6c7d236e404731d8bb0 (diff) | |
download | gcc-8701b671ee19eaf54c4fc67d27ed0a2b57467f94.zip gcc-8701b671ee19eaf54c4fc67d27ed0a2b57467f94.tar.gz gcc-8701b671ee19eaf54c4fc67d27ed0a2b57467f94.tar.bz2 |
[PR90921] Fortran OpenACC 'declare' directive's module handling causes duplicate data clauses
gcc/fortran/
PR fortran/90921
* trans-decl.c (finish_oacc_declare): Reset module_oacc_clauses
before scanning each namespace.
gcc/testsuite/
PR fortran/90921
* gfortran.dg/goacc/declare-3.f95: Update.
From-SVN: r272454
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/trans-decl.c | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 6fd97b6..32d961a 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2019-06-18 Julian Brown <julian@codesourcery.com> + + PR fortran/90921 + * trans-decl.c (finish_oacc_declare): Reset module_oacc_clauses + before scanning each namespace. + 2019-06-18 Thomas Schwinge <thomas@codesourcery.com> PR fortran/85221 diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index f504c27..64ce4bb 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -6491,6 +6491,7 @@ finish_oacc_declare (gfc_namespace *ns, gfc_symbol *sym, bool block) gfc_omp_clauses *omp_clauses = NULL; gfc_omp_namelist *n, *p; + module_oacc_clauses = NULL; gfc_traverse_ns (ns, find_module_oacc_declare_clauses); if (module_oacc_clauses && sym->attr.flavor == FL_PROGRAM) @@ -6502,7 +6503,6 @@ finish_oacc_declare (gfc_namespace *ns, gfc_symbol *sym, bool block) new_oc->clauses = module_oacc_clauses; ns->oacc_declare = new_oc; - module_oacc_clauses = NULL; } if (!ns->oacc_declare) |