summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.fortran-torture/execute/contained_3.f90
blob: d0de1f44913f8f91c29fae53aa2dc996e358a871 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
! 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