! { dg-do compile }
function return_char1(i) bind(c,name='return_char1')
  use iso_c_binding
  implicit none
  integer(c_int) :: i
  character(c_char) :: j
  character(c_char) :: return_char1

  j = achar(i)
  return_char1 = j
end function return_char1
function return_char2(i) result(output) bind(c,name='return_char2')
  use iso_c_binding
  implicit none
  integer(c_int) :: i
  character(c_char) :: j
  character(c_char) :: output

  j = achar(i)
  output = j
end function return_char2
function return_char3(i) bind(c,name='return_char3') result(output)
  use iso_c_binding
  implicit none
  integer(c_int) :: i
  character(c_char) :: j
  character(c_char) :: output

  j = achar(i)
  output = j
end function return_char3