This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/37829] ICE in resolve_symbol



------- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]