| program main |
| implicit none |
| integer :: i1, i2, i3, i4, i5, i6, i7 |
| integer :: j |
| do i1=1,10 |
| call sub1 ! { dg-error "Index variable 'i1' redefined" } |
| end do |
| do i2=1,10 |
| call sub2 ! { dg-error "Index variable 'i2' redefined" } |
| end do |
| do i3=1,10 |
| j = fcn3() ! { dg-error "Index variable 'i3' redefined" } |
| end do |
| do i4=1,10 |
| j = fcn4() ! { dg-error "Index variable 'i4' redefined" } |
| end do |
| do i5=1,10 |
| call sub5 ! { dg-error "Index variable 'i5' set to undefined" } |
| end do |
| |
| call sub6 |
| |
| do i7=1,10 |
| call sub7 ! { dg-error "Index variable 'i7' not definable" } |
| end do |
| contains |
| subroutine sub1 |
| i1 = 5 ! { dg-error "Index variable 'i1' redefined" } |
| end subroutine sub1 |
| |
| subroutine sub2 |
| do i2=1,5 ! { dg-error "Index variable 'i2' redefined" } |
| end do |
| end subroutine sub2 |
| |
| integer function fcn3() |
| i3 = 1 ! { dg-error "Index variable 'i3' redefined" } |
| fcn3 = i3 |
| end function fcn3 |
| |
| integer function fcn4() |
| open (10,file="foo.dat", iostat=i4) ! { dg-error "Index variable 'i4' redefined" } |
| fcn4 = 12 |
| end function fcn4 |
| |
| subroutine sub5 |
| integer :: k |
| k = intentout(i5) ! { dg-error "Index variable 'i5' set to undefined" } |
| end subroutine sub5 |
| |
| subroutine sub6 |
| do i6=1,10 |
| call sub6a ! { dg-error "Index variable 'i6' redefined" } |
| end do |
| end subroutine sub6 |
| |
| subroutine sub6a |
| i6 = 5 ! { dg-error "Index variable 'i6' redefined" } |
| end subroutine sub6a |
| |
| subroutine sub7 |
| integer :: k |
| k = intentinout (i7) ! { dg-error "Index variable 'i7' not definable" } |
| end subroutine sub7 |
| |
| integer function intentout(i) |
| integer, intent(out) :: i |
| end function intentout |
| |
| integer function intentinout(i) |
| integer, intent(inout) :: i |
| end function intentinout |
| end program main |
| |
| module foo |
| integer :: j1 |
| contains |
| subroutine mod_sub_1 |
| do j1=1,10 |
| call aux ! { dg-error "Index variable 'j1' redefined" } |
| end do |
| end subroutine mod_sub_1 |
| subroutine aux |
| j1 = 3 ! { dg-error "Index variable 'j1' redefined" } |
| end subroutine aux |
| end module foo |