http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46067

--- Comment #7 from janus at gcc dot gnu.org 2010-10-21 07:54:43 UTC ---
And here is yet another variant, which uses a procedure as actual argument to
another procedure (instead of procedure pointers). Same symptoms
(accepts-invalid).


module m

  type test_type
    integer :: id = 1
  end type

contains

  real function fun1 (t,x)
    real, intent(in) :: x
    type(test_type) :: t
    print *," id = ", t%id
    fun1 = cos(x)
  end function

end module


  use m
  implicit none

  call test(fun1)

contains

  subroutine test(proc)
    interface
      real function proc(t,x)
    import :: test_type
    real, intent(in) :: x
    class(test_type) :: t
      end function
    end interface
    type(test_type) :: funs
    real :: r
    r = proc(funs,0.)
    print *, " proc(0) ",r
  end subroutine

end

Reply via email to