! { dg-do run }
! { dg-additional-sources bind_c_usage_16_c.c }
!
! PR fortran/34079
!
! Ensure character-returning, bind(C) function work.
!
module mod
  use iso_c_binding
  implicit none
contains
  function bar(x)  bind(c, name="returnA")
    character(len=1,kind=c_char) :: bar, x
    bar = x
    bar = 'A'
  end function bar
  function foo()  bind(c, name="returnB")
    character(len=1,kind=c_char) :: foo
    foo = 'B'
  end function foo
end module mod

subroutine test() bind(c)
  use mod
  implicit none
  character(len=1,kind=c_char) :: a
  character(len=3,kind=c_char) :: b
  character(len=1,kind=c_char) :: c(3)
  character(len=3,kind=c_char) :: d(3)
  integer :: i

  a = 'z'
  b = 'fffff'
  c = 'h'
  d = 'uuuuu'

  a = bar('x')
  if (a /= 'A') call abort()
  b = bar('y')
  if (b /= 'A' .or. iachar(b(2:2))/=32 .or. iachar(b(3:3))/=32) call abort()
  c = bar('x')
  if (any(c /= 'A')) call abort()
  d = bar('y')
  if (any(d /= 'A')) call abort()

  a = foo()
  if (a /= 'B') call abort()
  b = foo()
  if (b /= 'B') call abort()
  c = foo()
  if (any(c /= 'B')) call abort()
  d = foo()
  if (any(d /= 'B')) call abort()
  do i = 1,3
    if(iachar(d(i)(2:2)) /=32 .or. iachar(d(i)(3:3)) /= 32) call abort()
  end do
end subroutine
