[Bug fortran/37829] ICE in resolve_symbol
dominiq at lps dot ens dot fr
gcc-bugzilla@gcc.gnu.org
Mon Dec 15 12:50:00 GMT 2008
------- 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
More information about the Gcc-bugs
mailing list