| ! Program to test contained functions calling their siblings. | |
| ! This is tricky because we don't find the declaration for the sibling | |
| ! function until after the caller has been parsed. | |
| program contained_3 | |
| call test | |
| contains | |
| subroutine test | |
| if (sub(3) .ne. 6) call abort | |
| end subroutine | |
| integer function sub(i) | |
| integer i | |
| if (i .gt. 1) then | |
| sub = sub2(i) * i | |
| else | |
| sub = 1 | |
| end if | |
| end function | |
| integer function sub2(i) | |
| integer i | |
| sub2 = sub(i - 1) | |
| end function | |
| end program |