https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118932
--- Comment #4 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- Hm, maybe I am misunderstanding the standard here, or it says something that was not intentional... We accept program memain interface subroutine lower () bind(c,name="foo") end subroutine lower subroutine upper () bind(c,name="FOO") end subroutine upper end interface call lower call upper end program memain but probably due to error rather than design, as -fdump-fortran-global shows: name=FOO name=foo, sym_name=upper, binding_label=FOO name=memain