diff options
author | Sandra Loosemore <sandra@codesourcery.com> | 2022-01-20 13:29:48 -0800 |
---|---|---|
committer | Sandra Loosemore <sandra@codesourcery.com> | 2022-01-20 13:29:48 -0800 |
commit | d2ad748eeef0dd260f3993b8dcbffbded3240a0a (patch) | |
tree | ccc475f58a559c1f528b3fef13530640b18160c3 /gcc/fortran/trans-openmp.cc | |
parent | cc01cd9397fe99e707bcc5b98bb33d807ba610d7 (diff) | |
download | gcc-d2ad748eeef0dd260f3993b8dcbffbded3240a0a.zip gcc-d2ad748eeef0dd260f3993b8dcbffbded3240a0a.tar.gz gcc-d2ad748eeef0dd260f3993b8dcbffbded3240a0a.tar.bz2 |
Fortran: Fix scope for OMP AFFINITY clause iterator variables [PR103695]
gfc_finish_var_decl was confused by the undocumented overloading of
the proc_name field in struct gfc_namespace to contain iterator
variables for the OpenMP AFFINITY clause, causing it to insert the
decls in the wrong scope. This patch adds a new distinct field to
hold these variables.
2022-01-20 Sandra Loosemore <sandra@codesourcery.com>
PR fortran/103695
PR fortran/102621
gcc/fortran
* gfortran.h (struct gfc_namespace) Add omp_affinity_iterator
field.
* dump-parse-tree.cc (show_iterator): Use it.
* openmp.cc (gfc_match_iterator): Likewise.
(resolve_omp_clauses): Likewise.
* trans-decl.cc (gfc_finish_var_decl): Likewise.
* trans-openmp.cc (handle_iterator): Likewise.
gcc/testsuite/
* gfortran.dg/gomp/affinity-clause-3.f90: Adjust pattern.
* gfortran.dg/gomp/pr102621.f90: New.
* gfortran.dg/gomp/pr103695.f90: New.
Diffstat (limited to 'gcc/fortran/trans-openmp.cc')
-rw-r--r-- | gcc/fortran/trans-openmp.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/fortran/trans-openmp.cc b/gcc/fortran/trans-openmp.cc index 9eabf68..d5a6b2d 100644 --- a/gcc/fortran/trans-openmp.cc +++ b/gcc/fortran/trans-openmp.cc @@ -2483,7 +2483,7 @@ static tree handle_iterator (gfc_namespace *ns, stmtblock_t *iter_block, tree block) { tree list = NULL_TREE; - for (gfc_symbol *sym = ns->proc_name; sym; sym = sym->tlink) + for (gfc_symbol *sym = ns->omp_affinity_iterators; sym; sym = sym->tlink) { gfc_constructor *c; gfc_se se; |