1! PR92482
2! { dg-do run }
3! { dg-additional-sources "fc-out-descriptor-5-c.c dump-descriptors.c" }
4!
5! This program checks that you can call a C function declared with an
6! assumed-length character dummy from Fortran.
7
8program testit
9  use iso_c_binding
10  implicit none
11
12  interface
13    subroutine ctest (a) bind (c)
14      use iso_c_binding
15      character(len=*,kind=C_CHAR), intent(out) :: a
16    end subroutine
17  end interface
18
19  character(len=26,kind=C_CHAR) :: aa
20  aa = 'abcdefghijklmnopqrstuvwxyz'
21
22  ! Test both passing the fixed-length-string directly to the function
23  ! with a C interface, and indirectly via a Fortran function with an
24  ! assumed-length dummy argument.
25  call ctest (aa)
26  call ftest (aa)
27
28contains
29  subroutine ftest (a) bind (c)
30    use iso_c_binding
31    character(len=*,kind=C_CHAR), intent(out) :: a
32    call ctest (a)
33  end subroutine
34
35end program
36