aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2016-08-19 17:30:33 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2016-08-19 17:30:33 +0200
commit1cad92845380a2175e70f5d6772d172f5c334201 (patch)
treec842c4c7d0803c5787383e84c95b89f6c746b55b /gcc/fortran/resolve.c
parentfbdbd4b6d78bb9730107ebf5b2e7351f0d3dbf33 (diff)
downloadgcc-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/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c6
1 files changed, 4 insertions, 2 deletions
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);
}