------- Comment #6 from dominiq at lps dot ens dot fr 2008-12-15 12:48 ------- Compiling the test in comment #4 gives:
pr37829_2.f90:21.6: d = c_funloc (g) 1 Error: Can't convert TYPE(_gfortran_iso_c_binding_c_funptr) to TYPE(c_funptr) at (1) looking the gfortran sources for "c_funptr" I get: in gcc/fortran/iso-c-binding.def, line 145 DERIVED_TYPE (ISOCBINDING_FUNPTR, "c_funptr", \ get_int_kind_from_node (ptr_type_node)) and in gcc/fortran/symbol.c, line 3507 generate_isocbinding_symbol (module_name, ptr_id == ISOCBINDING_NULL_PTR ? ISOCBINDING_PTR : ISOCBINDING_FUNPTR, (const char *) (ptr_id == ISOCBINDING_NULL_PTR ? "_gfortran_iso_c_binding_c_ptr" : "_gfortran_iso_c_binding_c_funptr")); line 3591 if (iso_c_sym_id == ISOCBINDING_F_PROCPOINTER) c_ptr_type = "_gfortran_iso_c_binding_c_funptr"; else c_ptr_type = "_gfortran_iso_c_binding_c_ptr"; line 4158 (const char *)(s == ISOCBINDING_FUNLOC ? "_gfortran_iso_c_binding_c_funptr" : "_gfortran_iso_c_binding_c_ptr")); I fail to see what is the difference between "c_funptr" and "_gfortran_iso_c_binding_c_funptr". -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37829