29 lines
690 B
Fortran
29 lines
690 B
Fortran
|
! { dg-do run }
|
||
|
! { dg-options "-fbounds-check" }
|
||
|
|
||
|
! PR fortran/37746
|
||
|
! Ensure that too long or matching string lengths don't trigger the runtime
|
||
|
! error for matching string lengths, if the dummy argument is neither
|
||
|
! POINTER nor ALLOCATABLE or assumed-shape.
|
||
|
! Also check that absent OPTIONAL arguments don't trigger the check.
|
||
|
|
||
|
MODULE m
|
||
|
CONTAINS
|
||
|
|
||
|
SUBROUTINE test (str, opt)
|
||
|
IMPLICIT NONE
|
||
|
CHARACTER(len=5) :: str
|
||
|
CHARACTER(len=5), OPTIONAL :: opt
|
||
|
END SUBROUTINE test
|
||
|
|
||
|
END MODULE m
|
||
|
|
||
|
PROGRAM main
|
||
|
USE m
|
||
|
IMPLICIT NONE
|
||
|
CALL test ('abcde') ! String length matches.
|
||
|
CALL test ('abcdef') ! String too long, is ok.
|
||
|
END PROGRAM main
|
||
|
|
||
|
! { dg-final { cleanup-modules "m" } }
|