diff options
author | Jakub Jelinek <jakub@gcc.gnu.org> | 2017-11-23 21:16:38 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2017-11-23 21:16:38 +0100 |
commit | 3b575376fbba16c3be9f607fbf53a6c841b3baae (patch) | |
tree | 178214b2b2fe3727a5aae2a00605f0ca690a54be | |
parent | 11aa563708d37d1b1f97864261971f8206d72554 (diff) | |
download | gcc-3b575376fbba16c3be9f607fbf53a6c841b3baae.zip gcc-3b575376fbba16c3be9f607fbf53a6c841b3baae.tar.gz gcc-3b575376fbba16c3be9f607fbf53a6c841b3baae.tar.bz2 |
re PR fortran/81841 (THREADPRIVATE (OpenMP) wrongly rejected in BLOCK DATA)
PR fortran/81841
* parse.c (parse_spec): Allow ST_OMP_THREADPRIVATE inside of
BLOCK DATA.
* libgomp.fortran/pr81841.f90: New test.
From-SVN: r255115
-rw-r--r-- | gcc/fortran/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/fortran/parse.c | 1 | ||||
-rw-r--r-- | libgomp/ChangeLog | 5 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.fortran/pr81841.f90 | 26 |
4 files changed, 39 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index a05bf83..57fe968 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2017-11-23 Dirk Broemmel <dibr-bugzilla@daswigwam.de> + Jakub Jelinek <jakub@redhat.com> + + PR fortran/81841 + * parse.c (parse_spec): Allow ST_OMP_THREADPRIVATE inside of + BLOCK DATA. + 2017-11-23 Mike Stump <mikestump@comcast.net> Eric Botcazou <ebotcazou@adacore.com> diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c index d025c91..08bff3f 100644 --- a/gcc/fortran/parse.c +++ b/gcc/fortran/parse.c @@ -3699,6 +3699,7 @@ loop: case ST_EQUIVALENCE: case ST_IMPLICIT: case ST_IMPLICIT_NONE: + case ST_OMP_THREADPRIVATE: case ST_PARAMETER: case ST_STRUCTURE_DECL: case ST_TYPE: diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index 9999b06..966b561 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,8 @@ +2017-11-23 Jakub Jelinek <jakub@redhat.com> + + PR fortran/81841 + * libgomp.fortran/pr81841.f90: New test. + 2017-11-22 Jakub Jelinek <jakub@redhat.com> PR libgomp/83106 diff --git a/libgomp/testsuite/libgomp.fortran/pr81841.f90 b/libgomp/testsuite/libgomp.fortran/pr81841.f90 new file mode 100644 index 0000000..176d1c8 --- /dev/null +++ b/libgomp/testsuite/libgomp.fortran/pr81841.f90 @@ -0,0 +1,26 @@ +! PR fortran/81841 +! { dg-do run } + +block data + integer :: a + real :: b(2) + common /c/ a, b + !$omp threadprivate (/c/) + data a / 32 / + data b /2*1./ +end + +program pr81841 + use omp_lib + integer :: e + real :: f(2) + common /c/ e, f + !$omp threadprivate (/c/) + !$omp parallel num_threads(8) + if ((e /= 32) .or. any(f /= 1.)) call abort + e = omp_get_thread_num () + f = e + 19. + !$omp barrier + if ((e /= omp_get_thread_num ()) .or. any(f /= e + 19.)) call abort + !$omp end parallel +end |