https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85448
kargl at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED CC| |kargl at gcc dot gnu.org Resolution|--- |INVALID --- Comment #1 from kargl at gcc dot gnu.org --- (In reply to francois.jacq from comment #0) > In the following example, the subroutine c_open of the module m2, which > should call the subroutine odopen of the module m1, calls itself instead... The behavior you see is correct. There is no 'c_odopen' in the m2.o file. You gave it the binding name 'odopen'. You have created a recursive call. $ gfcx -c m1.f90 $ nm m1.o 0000000000000000 T __m1_MOD_odopen U _gfortran_st_write U _gfortran_st_write_done U _gfortran_transfer_character_write $ gfcx -c m2.f90 $ nm m2.o U _gfortran_st_write U _gfortran_st_write_done U _gfortran_transfer_character_write 0000000000000000 T odopen