blob: 5846f8c68aab48468c6bda751d60814e6974a5e3 [file] [log] [blame]
! { dg-do compile }
!
program foo
implicit none
integer i
integer :: j = 0
real y(4)
do concurrent(i=1:4)
y(i) = bar(i) ! { dg-error "Reference to impure function" }
call bla(i) ! { dg-error "Subroutine call to" }
end do
do concurrent(i=1:4)
block
y(i) = bar(i) ! { dg-error "Reference to impure function" }
call bla(i) ! { dg-error "Subroutine call at" }
end block
end do
contains
impure function bar(i)
real bar
integer, intent(in) :: i
j = j + i
bar = j
end function bar
impure subroutine bla (i)
integer, intent(in) :: i
j = j + i
end subroutine bla
end program foo