1! { dg-do compile }
2! { dg-options "-fdump-tree-original -fcoarray=lib" }
3!
4! CO_SUM/CO_MIN/CO_MAX
5!
6program test
7  implicit none
8  intrinsic co_max
9  integer :: stat1, stat2, stat3
10  character(len=6) :: errmesg1
11  character(len=7) :: errmesg2
12  character(len=8) :: errmesg3
13  real :: val1
14  complex, allocatable :: val2(:)
15  character(len=99) :: val3
16  integer :: res
17
18  call co_broadcast(val1, source_image=num_images(), stat=stat1, errmsg=errmesg1)
19  call co_broadcast(val2, source_image=4, stat=stat2, errmsg=errmesg2)
20  call co_broadcast(val3, source_image=res,stat=stat3, errmsg=errmesg3)
21end program test
22
23! { dg-final { scan-tree-dump-times "_gfortran_caf_co_broadcast \\(&desc.., _gfortran_caf_num_images \\(0, -1\\), &stat1, errmesg1, 6\\);" 1 "original" } }
24! { dg-final { scan-tree-dump-times "_gfortran_caf_co_broadcast \\(&val2, 4, &stat2, errmesg2, 7\\);" 1 "original" } }
25! { dg-final { scan-tree-dump-times "_gfortran_caf_co_broadcast \\(&desc.., res, &stat3, errmesg3, 8\\);" 1 "original" } }
26! { dg-final { cleanup-tree-dump "original" } }
27