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
This commit is contained in:
Jakub Jelinek 2016-08-19 17:30:33 +02:00 committed by Jakub Jelinek
parent fbdbd4b6d7
commit 1cad928453
4 changed files with 33 additions and 2 deletions

View file

@ -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

View file

@ -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);
}

View file

@ -1,3 +1,8 @@
2016-08-19 Jakub Jelinek <jakub@redhat.com>
PR fortran/71014
* testsuite/libgomp.fortran/pr71014.f90: New test.
2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
PR middle-end/70895

View file

@ -0,0 +1,20 @@
! PR fortran/71014
! { dg-do run }
! { dg-additional-options "-O0" }
program pr71014
implicit none
integer :: i, j
integer, parameter :: t = 100*101/2
integer :: s(16)
s(:) = 0
!$omp parallel do
do j = 1, 16
associate (k => j)
do i = 1, 100
s(j) = s(j) + i
end do
end associate
end do
if (any(s /= t)) call abort
end program pr71014