http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57048



             Bug #: 57048

           Summary: [4.9 Regression] Handling of C_PTR and C_FUNPTR leads

                    to reject valid

    Classification: Unclassified

           Product: gcc

           Version: 4.9.0

            Status: UNCONFIRMED

          Keywords: rejects-valid

          Severity: normal

          Priority: P3

         Component: fortran

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: bur...@gcc.gnu.org





Reported by Angelo Graziosi at

http://gcc.gnu.org/ml/fortran/2013-04/msg00210.html



Using in file1:

  module m

  ...

    type t

      type(c_funptr) :: funptr

    end type



and in file2:

   use iso_c_binding, ONLY: c_funloc

   use m

   type(t) :: x

   ...

   x%funptr = c_funloc(proc)



fails with:

  Error: Can't convert TYPE(c_funptr) to INTEGER(4) at (1)





The problem is that the .mod file only contains:

  win32_types.mod:5 'C_funptr' '__iso_c_binding' '' 1 ((DERIVED UNKNOWN-INTENT

while the symtree is searched for "c_funptr".



Workaround: Editing the .mod file and changing C_funptr to c_funptr.

Reply via email to