re PR fortran/88463 (Rejects conforming source, OpenMP Parallel region Default(None) reference to module parameter array, separate source)
PR fortran/88463 * trans-openmp.c (gfc_omp_predetermined_sharing): Handle TREE_READONLY VAR_DECLs with DECL_EXTERNAL like those with TREE_STATIC. * testsuite/libgomp.fortran/pr88463-1.f90: New test. * testsuite/libgomp.fortran/pr88463-2.f90: New test. From-SVN: r267069
This commit is contained in:
parent
44cacba39d
commit
7a289b7d0a
@ -1,3 +1,9 @@
|
||||
2018-12-12 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR fortran/88463
|
||||
* trans-openmp.c (gfc_omp_predetermined_sharing): Handle TREE_READONLY
|
||||
VAR_DECLs with DECL_EXTERNAL like those with TREE_STATIC.
|
||||
|
||||
2018-12-11 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
PR fortran/88155
|
||||
|
@ -149,7 +149,8 @@ gfc_omp_predetermined_sharing (tree decl)
|
||||
variables at all (they can't be redefined), but they can nevertheless appear
|
||||
in parallel/task regions and for default(none) purposes treat them as shared.
|
||||
For vtables likely the same handling is desirable. */
|
||||
if (VAR_P (decl) && TREE_READONLY (decl) && TREE_STATIC (decl))
|
||||
if (VAR_P (decl) && TREE_READONLY (decl)
|
||||
&& (TREE_STATIC (decl) || DECL_EXTERNAL (decl)))
|
||||
return OMP_CLAUSE_DEFAULT_SHARED;
|
||||
|
||||
return OMP_CLAUSE_DEFAULT_UNSPECIFIED;
|
||||
|
@ -1,5 +1,9 @@
|
||||
2018-12-12 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR fortran/88463
|
||||
* testsuite/libgomp.fortran/pr88463-1.f90: New test.
|
||||
* testsuite/libgomp.fortran/pr88463-2.f90: New test.
|
||||
|
||||
* testsuite/libgomp.c-c++-common/for-16.c: New test.
|
||||
|
||||
2018-12-12 Andreas Schwab <schwab@suse.de>
|
||||
|
19
libgomp/testsuite/libgomp.fortran/pr88463-1.f90
Normal file
19
libgomp/testsuite/libgomp.fortran/pr88463-1.f90
Normal file
@ -0,0 +1,19 @@
|
||||
! PR fortran/88463
|
||||
! { dg-do compile { target { ! *-*-* } } }
|
||||
|
||||
module pr88463_1
|
||||
integer, parameter :: c = 1
|
||||
real, parameter :: d(4) = (/ 2, 3, 4, 5 /)
|
||||
end module pr88463_1
|
||||
|
||||
program pr88463
|
||||
use pr88463_1
|
||||
use pr88463_2
|
||||
integer :: i
|
||||
real :: j(4)
|
||||
!$omp parallel default(none) private (i, j)
|
||||
i = a + b(1) + b(4) + c + d(1) + d(4)
|
||||
j(1:4) = b(1:4)
|
||||
j(1:4) = d(1:4)
|
||||
!$omp end parallel
|
||||
end program pr88463
|
9
libgomp/testsuite/libgomp.fortran/pr88463-2.f90
Normal file
9
libgomp/testsuite/libgomp.fortran/pr88463-2.f90
Normal file
@ -0,0 +1,9 @@
|
||||
! PR fortran/88463
|
||||
! { dg-do link }
|
||||
! { dg-options "-fopenmp" }
|
||||
! { dg-additional-sources pr88463-1.f90 }
|
||||
|
||||
module pr88463_2
|
||||
integer, parameter :: a = 1
|
||||
real, parameter :: b(4) = (/ 2., 3., 4., 5. /)
|
||||
end module pr88463_2
|
Loading…
Reference in New Issue
Block a user