| ! { dg-do compile } |
| ! PR 30146 - warn about DO variables as argument to INTENT(IN) and |
| ! INTENT(INOUT) dummy arguments |
| program main |
| implicit none |
| integer :: i,j, k, l |
| do k=1,2 ! { dg-error "undefined value" } |
| do i=1,10 ! { dg-error "definable" } |
| do j=1,10 ! { dg-error "undefined value" } |
| do l=1,10 ! { dg-error "definable" } |
| call s_out(k) ! { dg-error "undefined" } |
| call s_inout(i) ! { dg-error "definable" } |
| print *,f_out(j) ! { dg-error "undefined" } |
| print *,f_inout(l) ! { dg-error "definable" } |
| end do |
| end do |
| end do |
| end do |
| contains |
| subroutine s_out(i_arg) |
| integer, intent(out) :: i_arg |
| end subroutine s_out |
| |
| subroutine s_inout(i_arg) |
| integer, intent(inout) :: i_arg |
| end subroutine s_inout |
| |
| function f_out(i_arg) |
| integer, intent(out) :: i_arg |
| integer :: f_out |
| f_out = i_arg |
| end function f_out |
| |
| function f_inout(i_arg) |
| integer, intent(inout) :: i_arg |
| integer :: f_inout |
| f_inout = i_arg |
| end function f_inout |
| |
| end program main |