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