41 lines
688 B
Fortran
41 lines
688 B
Fortran
|
! { dg-do run }
|
||
|
! { dg-options "-fbounds-check" }
|
||
|
!
|
||
|
! PR fortran/40383
|
||
|
! Gave before a bogus out of bounds.
|
||
|
! Contributed by Joost VandeVondele.
|
||
|
!
|
||
|
MODULE M1
|
||
|
INTEGER, PARAMETER :: default_string_length=80
|
||
|
END MODULE M1
|
||
|
MODULE M2
|
||
|
USE M1
|
||
|
IMPLICIT NONE
|
||
|
CONTAINS
|
||
|
FUNCTION F1(a,b,c,d) RESULT(RES)
|
||
|
CHARACTER(LEN=default_string_length), OPTIONAL :: a,b,c,d
|
||
|
LOGICAL :: res
|
||
|
END FUNCTION F1
|
||
|
END MODULE M2
|
||
|
|
||
|
MODULE M3
|
||
|
USE M1
|
||
|
USE M2
|
||
|
IMPLICIT NONE
|
||
|
CONTAINS
|
||
|
SUBROUTINE S1
|
||
|
CHARACTER(LEN=default_string_length) :: a,b
|
||
|
LOGICAL :: L1
|
||
|
INTEGER :: i
|
||
|
DO I=1,10
|
||
|
L1=F1(a,b)
|
||
|
ENDDO
|
||
|
END SUBROUTINE
|
||
|
END MODULE M3
|
||
|
|
||
|
USE M3
|
||
|
CALL S1
|
||
|
END
|
||
|
|
||
|
! { dg-final { cleanup-modules "m1 m2 m3" } }
|