https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103058
--- Comment #12 from Jan Hubicka <hubicka at gcc dot gnu.org> --- So the problem in this case really isn't fortran bug, but somewhat weird iteraction between visibility predicates. In particular we make binds_to_current_def to return false if symbol can be discarded and can_be_discarded is wrong by ignoring resolution info in the case of DECL_EXTERNAL. I am not sure why we check can_be_discarded in binds_to_current_def at first place. I am looking into that.