forked from OSchip/llvm-project
41 lines
1.1 KiB
Fortran
41 lines
1.1 KiB
Fortran
! when the loops are not DO CONCURRENT
|
|
|
|
! RUN: not %flang_fc1 -fdebug-unparse-with-symbols %s 2>&1 | FileCheck %s
|
|
! CHECK-NOT: image control statement not allowed in DO CONCURRENT
|
|
! CHECK-NOT: RETURN not allowed in DO CONCURRENT
|
|
! CHECK-NOT: call to impure procedure in DO CONCURRENT not allowed
|
|
! CHECK-NOT: IEEE_GET_FLAG not allowed in DO CONCURRENT
|
|
! CHECK-NOT: ADVANCE specifier not allowed in DO CONCURRENT
|
|
! CHECK-NOT: SYNC ALL
|
|
! CHECK-NOT: SYNC IMAGES
|
|
|
|
module ieee_exceptions
|
|
interface
|
|
subroutine ieee_get_flag(i, j)
|
|
integer :: i, j
|
|
end subroutine ieee_get_flag
|
|
end interface
|
|
end module ieee_exceptions
|
|
|
|
subroutine do_concurrent_test1(i,n)
|
|
implicit none
|
|
integer :: i, n
|
|
do 10 i = 1,n
|
|
SYNC ALL
|
|
SYNC IMAGES (*)
|
|
return
|
|
10 continue
|
|
end subroutine do_concurrent_test1
|
|
|
|
subroutine do_concurrent_test2(i,j,n,flag)
|
|
use ieee_exceptions
|
|
implicit none
|
|
integer :: i, j, n, flag, flag2
|
|
do i = 1,n
|
|
change team (j)
|
|
call ieee_get_flag(flag, flag2)
|
|
end team
|
|
write(*,'(a35)',advance='no')
|
|
end do
|
|
end subroutine do_concurrent_test2
|