diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-11-24 23:08:26 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-11-24 23:08:26 +0000 |
commit | 5dc4d291b7f87db788e66a314ce24bcdadc9e173 (patch) | |
tree | d83db1c113f6d65bcbb7993517f743311e6b26e2 /libgomp | |
parent | f9d84b38ca7d96fd4ba316e0d470b648a3c087df (diff) |
PR fortran/63938
* trans-openmp.c (gfc_trans_omp_atomic): Make sure lhsaddr is
simple enough for goa_lhs_expr_p.
* libgomp.fortran/pr63938-1.f90: New test.
* libgomp.fortran/pr63938-2.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218031 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgomp')
-rw-r--r-- | libgomp/ChangeLog | 6 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.fortran/pr63938-1.f90 | 14 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.fortran/pr63938-2.f90 | 18 |
3 files changed, 38 insertions, 0 deletions
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index 08425e98ee2..097b36f3ad2 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,9 @@ +2014-11-24 Jakub Jelinek <jakub@redhat.com> + + PR fortran/63938 + * libgomp.fortran/pr63938-1.f90: New test. + * libgomp.fortran/pr63938-2.f90: New test. + 2014-11-21 Steve Ellcey <sellcey@imgtec.com> * config/linux/mips/futex.h (SYS_futex): Define if not already done. diff --git a/libgomp/testsuite/libgomp.fortran/pr63938-1.f90 b/libgomp/testsuite/libgomp.fortran/pr63938-1.f90 new file mode 100644 index 00000000000..27501b2f8ab --- /dev/null +++ b/libgomp/testsuite/libgomp.fortran/pr63938-1.f90 @@ -0,0 +1,14 @@ +! PR fortran/63938 +! { dg-do run } + +program pr63938_1 + integer :: i, x(1) + x(1) = 0 +!$omp parallel do + do i = 1, 1000 + !$omp atomic + x(1) = x(1) + 1 + end do +!$omp end parallel do + if (x(1) .ne. 1000) call abort +end program pr63938_1 diff --git a/libgomp/testsuite/libgomp.fortran/pr63938-2.f90 b/libgomp/testsuite/libgomp.fortran/pr63938-2.f90 new file mode 100644 index 00000000000..e5f37ba7602 --- /dev/null +++ b/libgomp/testsuite/libgomp.fortran/pr63938-2.f90 @@ -0,0 +1,18 @@ +! PR fortran/63938 +! { dg-do run } + +program pr63938_2 + type t + integer :: x + end type + integer :: i + type(t) :: x + x%x = 0 +!$omp parallel do + do i = 1, 1000 + !$omp atomic + x%x = x%x + 1 + end do +!$omp end parallel do + if (x%x .ne. 1000) call abort +end program pr63938_2 |