mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-08 19:20:44 +08:00
re PR fortran/62131 (OpenMP: Subobject of an allocatable array not allowed in OMP ATOMIC)
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. Co-Authored-By: Tobias Burnus <burnus@net-b.de> From-SVN: r214010
This commit is contained in:
parent
2c274197e9
commit
7258a25765
@ -1,3 +1,10 @@
|
||||
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
|
||||
|
@ -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);
|
||||
|
@ -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-15 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/62031
|
||||
|
19
gcc/testsuite/gfortran.dg/gomp/pr62131.f90
Normal file
19
gcc/testsuite/gfortran.dg/gomp/pr62131.f90
Normal file
@ -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
|
Loading…
x
Reference in New Issue
Block a user