blob: 62080f940f70f3767a9dfe769ca178cc111fa3df [file] [log] [blame]
! { dg-do run }
! Tests the fix for PR23446. Based on PR example.
! Contributed by Paul Thomas <pault@gcc.gnu.org>
!
! Tests furthermore the fix for PR fortran/29916.
! Test contributed by Marco Restelli <mrestelli@gmail.com>
!
PROGRAM TST
INTEGER IMAX
INTEGER :: A(4) = 1
IMAX=2
CALL S(A)
CALL T(A)
CALL U(A)
if ( ALL(A.ne.(/2,2,3,4/))) CALL ABORT ()
if ( ALL(F().ne.(/2.0,2.0/))) CALL ABORT()
CONTAINS
SUBROUTINE S(A)
INTEGER A(IMAX)
a = 2
END SUBROUTINE S
SUBROUTINE T(A)
INTEGER A(3:IMAX+4)
A(5:IMAX+4) = 3
END SUBROUTINE T
SUBROUTINE U(A)
INTEGER A(2,IMAX)
A(2,2) = 4
END SUBROUTINE U
FUNCTION F()
real :: F(IMAX)
F = 2.0
END FUNCTION F
ENDPROGRAM TST