! { dg-do run } ! ! Test the fix for PR94331 ! ! Contributed by Igor Gayday ! MODULE FOO implicit none INTEGER, parameter :: n = 11 contains SUBROUTINE dummyc(x0) BIND(C) type(*), dimension(..) :: x0 if(LBOUND(x0,1)/=1) stop 5 if(UBOUND(x0,1)/=n) stop 6 if(rank(x0)/=1) stop 7 END SUBROUTINE dummyc SUBROUTINE dummy(x0) type(*), dimension(..) :: x0 call dummyc(x0) END SUBROUTINE dummy END MODULE PROGRAM main USE FOO IMPLICIT NONE integer :: before(2), after(2) DOUBLE PRECISION, ALLOCATABLE :: buf(:) DOUBLE PRECISION :: buf2(n) ALLOCATE(buf(n)) before(1) = LBOUND(buf,1) before(2) = UBOUND(buf,1) CALL dummy (buf) after(1) = LBOUND(buf,1) after(2) = UBOUND(buf,1) deallocate(buf) if (before(1) .NE. after(1)) stop 1 if (before(2) .NE. after(2)) stop 2 before(1) = LBOUND(buf2,1) before(2) = UBOUND(buf2,1) CALL dummy (buf2) after(1) = LBOUND(buf2,1) after(2) = UBOUND(buf2,1) if (before(1) .NE. after(1)) stop 3 if (before(2) .NE. after(2)) stop 4 END PROGRAM