+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
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;
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>
--- /dev/null
+! 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
--- /dev/null
+! 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