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" } }
|