blob: c710f3b2611ef2dc6a37a4a386dbd24f648a377e [file] [log] [blame]
! { dg-do run }
!
! PR 60777: [F03] RECURSIVE function rejected in specification expression
!
! Contributed by Vladimir Fuka <vladimir.fuka@gmail.com>
module recur
implicit none
contains
pure recursive function f(n) result(answer)
integer, intent(in) :: n
integer :: answer
if (n<2) then
answer = 1
else
answer = f(n-1)*n
end if
end function
pure function usef(n)
integer,intent(in) :: n
character(f(n)) :: usef
usef = repeat('*',f(n))
end function
end module
program testspecexpr
use recur
implicit none
if (usef(1) /= '*') STOP 1
if (usef(2) /= '**') STOP 2
if (usef(3) /= '******') STOP 3
end