[Bug fortran/100917] Bind(c): errors handling long double real
sandra at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sat Jun 26 23:35:47 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100917
sandra at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |sandra at gcc dot gnu.org
--- Comment #4 from sandra at gcc dot gnu.org ---
I've observed this bug in my own testing as well, and traced it to the same
cause: the GFC descriptor structure doesn't encode the kind, only the
elem_len, so the runtime can't convert it to a valid C descriptor.
IIUC the GFC descriptor needs to encode the kind to support assumed-type
arguments in functions that are not declared bind(c) (for example, a subroutine
with Fortran binding that acts as a wrapper around a C function). I imagine
any proper fix for this would involve an ABI change affecting programs that
don't even use bind(c).
More information about the Gcc-bugs
mailing list