1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
! { dg-do compile }
! { dg-options "-fdump-tree-original -fcoarray=lib" }
!
program function_stat
implicit none
integer :: me[*],tmp,stat,stat2,next
me = this_image()
next = me + 1
if(me == num_images()) next = 1
stat = 0
sync all(stat=stat)
if(stat /= 0) write(*,*) 'Image failed during sync'
stat = 0
if(me == 1) then
tmp = func(me[4,stat=stat])
if(stat /= 0) write(*,*) me,'failure in func arg'
else if(me == 2) then
tmp = func2(me[1,stat=stat2],me[3,stat=stat])
if(stat2 /= 0 .or. stat /= 0) write(*,*) me,'failure in func2 args'
endif
contains
function func(remote_me)
integer func
integer remote_me
func = remote_me
end function func
function func2(remote_me,remote_neighbor)
integer func2
integer remote_me,remote_neighbor
func2 = remote_me + remote_neighbor
end function func2
end program function_stat
! { dg-final { scan-tree-dump-times "_gfortran_caf_get \\\(caf_token.0, \\\(integer\\\(kind=\[48\]\\\)\\\) desc.\[0-9\]+.data - \\\(integer\\\(kind=\[48\]\\\)\\\) me, 4, &desc.\[0-9\]+, 0B, &desc.\[0-9\]+, 4, 4, 0, &stat\\\);" 1 "original" } }
! { dg-final { scan-tree-dump-times "_gfortran_caf_get \\\(caf_token.0, \\\(integer\\\(kind=\[48\]\\\)\\\) desc.\[0-9\]+.data - \\\(integer\\\(kind=\[48\]\\\)\\\) me, 1, &desc.\[0-9\]+, 0B, &desc.\[0-9\]+, 4, 4, 0, &stat2\\\);" 1 "original" } }
! { dg-final { scan-tree-dump-times "_gfortran_caf_get \\\(caf_token.0, \\\(integer\\\(kind=\[48\]\\\)\\\) desc.\[0-9\]+.data - \\\(integer\\\(kind=\[48\]\\\)\\\) me, 3, &desc.\[0-9\]+, 0B, &desc.\[0-9\]+, 4, 4, 0, &stat\\\);" 1 "original" } }
|