------- Comment #6 from jaydub66 at gmail dot com 2008-05-15 21:48 ------- I noticed that while the test case from comment #1 still fails, the following variation actually works with the patch from comment #2:
module m contains subroutine one(a) integer a(:) print *, lbound(a), ubound(a), size(a) if ((lbound(a,dim=1) /= 1) .or. (ubound(a,dim=1) /= 3)) & call abort() print *, a if (any(a /= [1,2,3])) call abort() end subroutine one end module m program test use m implicit none call foo(one) contains subroutine foo(f) interface subroutine f(a) integer a(:) end subroutine end interface call f([1,2,3]) end subroutine foo end program test The only difference being that f is specified by an INTERFACE statement instead of a PROCEDURE statement. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35830