diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-08-19 17:30:33 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-08-19 17:30:33 +0200 |
commit | 1cad92845380a2175e70f5d6772d172f5c334201 (patch) | |
tree | c842c4c7d0803c5787383e84c95b89f6c746b55b /gcc | |
parent | fbdbd4b6d78bb9730107ebf5b2e7351f0d3dbf33 (diff) | |
download | gcc-1cad92845380a2175e70f5d6772d172f5c334201.zip gcc-1cad92845380a2175e70f5d6772d172f5c334201.tar.gz gcc-1cad92845380a2175e70f5d6772d172f5c334201.tar.bz2 |
re PR fortran/71014 (associate statement inside omp parallel do appears to disable default private attribute for inner loop indices)
PR fortran/71014
* resolve.c (gfc_resolve): For ns->construct_entities don't save, clear
and restore omp state around the resolving.
* testsuite/libgomp.fortran/pr71014.f90: New test.
From-SVN: r239620
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/fortran/resolve.c | 6 |
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 11767cd..23386cc 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,9 @@ 2016-08-19 Jakub Jelinek <jakub@redhat.com> + PR fortran/71014 + * resolve.c (gfc_resolve): For ns->construct_entities don't save, clear + and restore omp state around the resolving. + PR fortran/69281 * trans-openmp.c (gfc_trans_omp_parallel, gfc_trans_omp_task, gfc_trans_omp_target): Wrap gfc_trans_omp_code result in an extra diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 7763f9c..b7036a8 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -15587,7 +15587,8 @@ gfc_resolve (gfc_namespace *ns) /* As gfc_resolve can be called during resolution of an OpenMP construct body, we should clear any state associated to it, so that say NS's DO loops are not interpreted as OpenMP loops. */ - gfc_omp_save_and_clear_state (&old_omp_state); + if (!ns->construct_entities) + gfc_omp_save_and_clear_state (&old_omp_state); resolve_types (ns); component_assignment_level = 0; @@ -15599,5 +15600,6 @@ gfc_resolve (gfc_namespace *ns) gfc_run_passes (ns); - gfc_omp_restore_state (&old_omp_state); + if (!ns->construct_entities) + gfc_omp_restore_state (&old_omp_state); } |