diff options
| author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-08-15 10:24:08 +0000 |
|---|---|---|
| committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-08-15 10:24:08 +0000 |
| commit | 98e1cf64d618d99307a1c7e768aa3e9d54516b08 (patch) | |
| tree | c614cd292360261d103b066910a7659be9189291 /gcc | |
| parent | 707c36c41c099d14cff3d189e2221af5709404fb (diff) | |
| download | ppe42-gcc-98e1cf64d618d99307a1c7e768aa3e9d54516b08.tar.gz ppe42-gcc-98e1cf64d618d99307a1c7e768aa3e9d54516b08.zip | |
PR fortran/62131
* openmp.c (resolve_omp_atomic): Only complain if code->expr1's attr
is allocatable, rather than whenever var->attr.allocatable.
* gfortran.dg/gomp/pr62131.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@214011 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/fortran/ChangeLog | 7 | ||||
| -rw-r--r-- | gcc/fortran/openmp.c | 2 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/testsuite/gfortran.dg/gomp/pr62131.f90 | 19 |
4 files changed, 33 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 61c443c5ff8..d39955ba75f 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,4 +1,11 @@ 2014-08-15 Jakub Jelinek <jakub@redhat.com> + Tobias Burnus <burnus@net-b.de> + + PR fortran/62131 + * openmp.c (resolve_omp_atomic): Only complain if code->expr1's attr + is allocatable, rather than whenever var->attr.allocatable. + +2014-08-15 Jakub Jelinek <jakub@redhat.com> PR fortran/62107 * trans-openmp.c (gfc_omp_finish_clause): Handle scalar pointer diff --git a/gcc/fortran/openmp.c b/gcc/fortran/openmp.c index d1406cfcc19..58aaf6623c1 100644 --- a/gcc/fortran/openmp.c +++ b/gcc/fortran/openmp.c @@ -2744,7 +2744,7 @@ resolve_omp_atomic (gfc_code *code) break; } - if (var->attr.allocatable) + if (gfc_expr_attr (code->expr1).allocatable) { gfc_error ("!$OMP ATOMIC with ALLOCATABLE variable at %L", &code->loc); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index bdb9b808e40..5804f93b497 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2014-08-15 Jakub Jelinek <jakub@redhat.com> + Tobias Burnus <burnus@net-b.de> + + PR fortran/62131 + * gfortran.dg/gomp/pr62131.f90: New test. + 2014-08-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> Backport from mainline diff --git a/gcc/testsuite/gfortran.dg/gomp/pr62131.f90 b/gcc/testsuite/gfortran.dg/gomp/pr62131.f90 new file mode 100644 index 00000000000..8e88cd70bcc --- /dev/null +++ b/gcc/testsuite/gfortran.dg/gomp/pr62131.f90 @@ -0,0 +1,19 @@ +! PR fortran/62131 +! { dg-do compile } +! { dg-options "-fopenmp" } + +program pr62131 + integer,allocatable :: nerrs(:,:) + allocate(nerrs(10,10)) + nerrs(:,:) = 0 +!$omp parallel do + do k=1,10 + call uperrs(k,1) + end do +contains + subroutine uperrs(i,io) + integer,intent(in) :: i,io +!$omp atomic + nerrs(i,io)=nerrs(i,io)+1 + end subroutine +end |

