1! { dg-do run } 2! { dg-options "-fbounds-check" } 3! 4! PR fortran/40383 5! Gave before a bogus out of bounds. 6! Contributed by Joost VandeVondele. 7! 8MODULE M1 9 INTEGER, PARAMETER :: default_string_length=80 10END MODULE M1 11MODULE M2 12 USE M1 13 IMPLICIT NONE 14CONTAINS 15 FUNCTION F1(a,b,c,d) RESULT(RES) 16 CHARACTER(LEN=default_string_length), OPTIONAL :: a,b,c,d 17 LOGICAL :: res 18 END FUNCTION F1 19END MODULE M2 20 21MODULE M3 22 USE M1 23 USE M2 24 IMPLICIT NONE 25CONTAINS 26 SUBROUTINE S1 27 CHARACTER(LEN=default_string_length) :: a,b 28 LOGICAL :: L1 29 INTEGER :: i 30 DO I=1,10 31 L1=F1(a,b) 32 ENDDO 33 END SUBROUTINE 34END MODULE M3 35 36USE M3 37CALL S1 38END 39