Daniel Celis Garza and Damian Rouson have developed a runtime library and include file for the TS 29113 and F2018 C descriptors. https://github.com/sourceryinstitute/ISO_Fortran_binding
The ordering of types is different to the current 'bt' enum in libgfortran.h. This patch interchanges BT_DERIVED and BT_CHARACTER to fix this. Regtests on FC28/x86_64. OK for trunk? Cheers Paul 2018-07-31 Paul Thomas <pa...@gcc.gnu.org> * gcc/fortran/libgfortran.h : In bt enum interchange BT_DERIVED and BT_CHARACTER for CFI descriptor compatibility(TS 29113).
Index: gcc/fortran/libgfortran.h =================================================================== *** gcc/fortran/libgfortran.h (revision 262444) --- gcc/fortran/libgfortran.h (working copy) *************** typedef enum *** 171,177 **** used in the run-time library for IO. */ typedef enum { BT_UNKNOWN = 0, BT_INTEGER, BT_LOGICAL, BT_REAL, BT_COMPLEX, ! BT_DERIVED, BT_CHARACTER, BT_CLASS, BT_PROCEDURE, BT_HOLLERITH, BT_VOID, BT_ASSUMED, BT_UNION } bt; --- 171,177 ---- used in the run-time library for IO. */ typedef enum { BT_UNKNOWN = 0, BT_INTEGER, BT_LOGICAL, BT_REAL, BT_COMPLEX, ! BT_CHARACTER, BT_DERIVED, BT_CLASS, BT_PROCEDURE, BT_HOLLERITH, BT_VOID, BT_ASSUMED, BT_UNION } bt;