https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84619
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED CC| |jakub at gcc dot gnu.org, | |jb at gcc dot gnu.org Resolution|--- |INVALID --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- There is nothing strange on it, gfortran changed ABI in GCC 8, so on 64-bit architectures your C prototype for the function defined in Fortran is no longer valid. void get3_ (int* ih, char* cp, char* cx, double* res, int* ier, int cp_len, int cx_len); doesn't match what we actually emit, which is: void get3_ (int* ih, char* cp, char* cx, double* res, int* ier, long cp_len, long cx_len); long should work on Linux, but might not work e.g. on 64-bit Windows, not really sure if the lengths there are 64-bit or 32-bit. If 64-bit, probably intptr_t is better (if you include stdint.h), though PR78534 claims it is size_t.