mirror of git://gcc.gnu.org/git/gcc.git
check.c (gfc_check_atomic): Properly check for coarrayness and for being coindexed.
2015-03-02 Tobias Burnus <burnus@net-b.de>
* check.c (gfc_check_atomic): Properly check for coarrayness
and for being coindexed.
2015-03-02 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/coarray_atomic_6.f90: New.
From-SVN: r221122
This commit is contained in:
parent
af5513e96b
commit
bc81b5ce9b
|
|
@ -1,3 +1,8 @@
|
|||
2015-03-02 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
* check.c (gfc_check_atomic): Properly check for coarrayness
|
||||
and for being coindexed.
|
||||
|
||||
2015-02-26 Martin Liska <mliska@suse.cz>
|
||||
|
||||
* resolve.c: Rename enum 'comparison' to 'compare_result' as
|
||||
|
|
|
|||
|
|
@ -1022,7 +1022,7 @@ gfc_check_atomic (gfc_expr *atom, int atom_no, gfc_expr *value, int val_no,
|
|||
return false;
|
||||
}
|
||||
|
||||
if (!gfc_expr_attr (atom).codimension)
|
||||
if (!gfc_is_coarray (atom) && !gfc_is_coindexed (atom))
|
||||
{
|
||||
gfc_error ("ATOM argument at %L of the %s intrinsic function shall be a "
|
||||
"coarray or coindexed", &atom->where, gfc_current_intrinsic);
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
2015-03-02 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
* gfortran.dg/coarray_atomic_6.f90: New.
|
||||
|
||||
2015-03-02 Ilya Enkovich <ilya.enkovich@intel.com>
|
||||
|
||||
PR target/65184
|
||||
|
|
|
|||
|
|
@ -0,0 +1,36 @@
|
|||
! { dg-do compile }
|
||||
! { dg-options "-fcoarray=single" }
|
||||
!
|
||||
! Contributed by Reinhold Bader
|
||||
!
|
||||
!
|
||||
program def_and_ref
|
||||
! compile only
|
||||
use, intrinsic :: iso_fortran_env
|
||||
implicit none
|
||||
type :: e
|
||||
integer(kind=atomic_int_kind) :: ia = 0
|
||||
logical(kind=atomic_logical_kind) :: la = .false.
|
||||
end type
|
||||
|
||||
type(e) :: a[*]
|
||||
|
||||
integer :: ival = 0
|
||||
logical :: lval = .false.
|
||||
|
||||
if (this_image() == 1) then
|
||||
call atomic_define(a[num_images()]%ia, 4)
|
||||
call atomic_define(a[num_images()]%la, .true.)
|
||||
end if
|
||||
if (this_image() == num_images()) then
|
||||
do while (ival == 0 .or. .not. lval)
|
||||
call atomic_ref(ival, a%ia)
|
||||
call atomic_ref(lval, a%la)
|
||||
end do
|
||||
if (ival == 4 .and. lval) then
|
||||
write(*,*) 'OK'
|
||||
else
|
||||
write(*,*) 'FAIL: ival,lval =', ival, lval
|
||||
end if
|
||||
end if
|
||||
end program
|
||||
Loading…
Reference in New Issue