1! { dg-do run }
2! { dg-options "-fbounds-check" }
3! { dg-shouldfail "Character length mismatch" }
4
5! PR fortran/37746
6! Test bounds-checking for string length of dummy arguments.
7
8MODULE m
9
10CONTAINS
11
12  SUBROUTINE test (str)
13    IMPLICIT NONE
14    CHARACTER(len=5) :: str(:) ! Assumed shape.
15  END SUBROUTINE test
16
17  SUBROUTINE test2 (n)
18    IMPLICIT NONE
19    INTEGER :: n
20    CHARACTER(len=n) :: str(2)
21    CALL test (str)
22  END SUBROUTINE test2
23
24END MODULE m
25
26PROGRAM main
27  USE m
28  IMPLICIT NONE
29  CALL test2 (7) ! Too long.
30END PROGRAM main
31
32! { dg-output "does not match the declared one for dummy argument 'str' \\(7/5\\)" }
33