------- Comment #10 from ohl at physik dot uni-wuerzburg dot de 2010-04-01 12:45 ------- (In reply to comment #8) > That's not valid either as you have not defined "p1_type" - replacing it by > INTEGER should work, though. -- Well, it actually does not as specification > expressions need to be PURE.
Doesn't help module m implicit none type t procedure(p1_type), nopass, pointer :: p1 => NULL() procedure(p2_type), nopass, pointer :: p2 => NULL() end type t abstract interface pure function p1_type () result (n) integer :: n end function p1_type pure function p2_type () result (n) integer :: n end function p2_type end interface contains subroutine proc (t1, t2) type(t), intent(in) :: t1, t2 integer, dimension(t1%p1(), t2%p2()) :: table end subroutine proc end module m (The abstract interface is in the original bug report, but was removed in Dominiques's reduction). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43591