diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/pr32599.f03')
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr32599.f03 | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/pr32599.f03 b/gcc/testsuite/gfortran.dg/pr32599.f03 new file mode 100644 index 000000000..fa8aa68f9 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr32599.f03 @@ -0,0 +1,40 @@ +! { dg-do compile } +! PR fortran/32599 +! Verifies that character string arguments to a bind(c) procedure have length +! 1, or no len is specified. +module pr32599 + interface + subroutine destroy(path) BIND(C) ! { dg-error "must be length 1" } + use iso_c_binding + implicit none + character(len=*,kind=c_char), intent(IN) :: path + end subroutine destroy + + subroutine create(path) BIND(C) ! { dg-error "must be length 1" } + use iso_c_binding + implicit none + character(len=5,kind=c_char), intent(IN) :: path + end subroutine create + + ! This should be valid. + subroutine create1(path) BIND(C) + use iso_c_binding + implicit none + character(len=1,kind=c_char), intent(IN) :: path + end subroutine create1 + + ! This should be valid. + subroutine create2(path) BIND(C) + use iso_c_binding + implicit none + character(kind=c_char), intent(IN) :: path + end subroutine create2 + + ! This should be valid. + subroutine create3(path) BIND(C) + use iso_c_binding + implicit none + character(kind=c_char), dimension(*), intent(IN) :: path + end subroutine create3 + end interface +end module pr32599 |