| ! { 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 |