diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index c2308f12a5ab..fa56f8d374ee 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,6 +1,12 @@ 2016-07-07 Jakub Jelinek Backported from mainline + 2016-07-01 Jakub Jelinek + + PR fortran/71717 + * trans-openmp.c (gfc_omp_privatize_by_reference): Return false + for GFC_DECL_ASSOCIATE_VAR_P with POINTER_TYPE. + 2016-06-30 Jakub Jelinek PR fortran/71704 diff --git a/gcc/fortran/trans-openmp.c b/gcc/fortran/trans-openmp.c index c2fcffc3eab4..970cd406352e 100644 --- a/gcc/fortran/trans-openmp.c +++ b/gcc/fortran/trans-openmp.c @@ -71,6 +71,7 @@ gfc_omp_privatize_by_reference (const_tree decl) if (GFC_DECL_GET_SCALAR_POINTER (decl) || GFC_DECL_GET_SCALAR_ALLOCATABLE (decl) || GFC_DECL_CRAY_POINTEE (decl) + || GFC_DECL_ASSOCIATE_VAR_P (decl) || VOID_TYPE_P (TREE_TYPE (TREE_TYPE (decl)))) return false; diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index ee0fbf5969d7..a511c0cb9ae8 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,11 @@ +2016-07-07 Jakub Jelinek + + Backported from mainline + 2016-07-01 Jakub Jelinek + + PR fortran/71717 + * testsuite/libgomp.fortran/associate3.f90: New test. + 2016-06-03 Release Manager * GCC 5.4.0 released. diff --git a/libgomp/testsuite/libgomp.fortran/associate3.f90 b/libgomp/testsuite/libgomp.fortran/associate3.f90 new file mode 100644 index 000000000000..ec3d8dc33b94 --- /dev/null +++ b/libgomp/testsuite/libgomp.fortran/associate3.f90 @@ -0,0 +1,20 @@ +! PR fortran/71717 +! { dg-do run } + + type t + real, allocatable :: f(:) + end type + type (t) :: v + integer :: i, j + allocate (v%f(4)) + v%f = 19. + i = 5 + associate (u => v, k => i) + !$omp parallel do + do j = 1, 4 + u%f(j) = 21. + if (j.eq.1) k = 7 + end do + end associate + if (any (v%f(:).ne.21.) .or. i.ne.7) call abort +end