This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/37829] ICE in resolve_symbol
- From: "dominiq at lps dot ens dot fr" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 15 Dec 2008 12:48:53 -0000
- Subject: [Bug fortran/37829] ICE in resolve_symbol
- References: <bug-37829-87@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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