Compiling the following program gives the error: Error: Type 'y_c' at (1) is a parameter to the BIND(C) procedure 'wrapper' but is not C interoperable because derived type 'ty_c' is not C interoperable
It works if one moves the TYPE declaration up. It also works with the SUBROUTINE is not BIND(C). TODO: - Move check from decl.c to resolve.c - Change "parameter" to (dummy/formal) "argument" as otherwise it can be confused with the PARAMETER attribute. Found at: http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/5392e4c270d4f3c7 Where it was reported by Steven Correll. MODULE mExample CONTAINS SUBROUTINE wrapper(y_c) bind(c) USE iso_c_binding type, bind(c) :: ty_c type(c_ptr) :: y_cptr Integer(c_int) ny end type type(ty_c) :: y_c END SUBROUTINE END MODULE -- Summary: Bogus BIND(C) error message Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: burnus at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38829