1! xfailed due to PR 101308
2! PR 101305
3! PR 100917
4! { dg-do run }
5! { dg-additional-sources "typecodes-scalar-longdouble-c.c dump-descriptors.c" }
6! { dg-additional-options "-g" }
7!
8! This program tests that long double kind constants in the ISO_C_BINDING
9! module result in the right type field in arguments passed by descriptor,
10! also matching the size of the corresponding C type.  We use pointers
11! to force the use of a descriptor.
12
13program testit
14  use iso_c_binding
15  implicit none
16
17  interface
18
19    subroutine ctest (arg_long_double, arg_long_double_complex) bind (c)
20      use iso_c_binding
21      real(C_LONG_DOUBLE), pointer :: arg_long_double
22      complex(C_LONG_DOUBLE_COMPLEX), pointer :: arg_long_double_complex
23    end subroutine
24
25  end interface
26
27  real(C_LONG_DOUBLE), pointer :: var_long_double
28  complex(C_LONG_DOUBLE_COMPLEX), pointer :: var_long_double_complex
29
30  nullify (var_long_double, var_long_double_complex)
31  call ctest (var_long_double, var_long_double_complex)
32
33end program
34