https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85877
--- Comment #6 from anlauf at gcc dot gnu.org --- Digging some more, it appears that the logic in resolve.c is incomplete. There is some inconsistency between what is dealt with in resolve_symbol and in resolve_fl_procedure. resolve_symbol: 15637 if (sym->attr.is_bind_c && sym->attr.use_assoc == 0 15638 && sym->attr.dummy == 0 && sym->attr.flavor != FL_PROCEDURE 15639 && sym->attr.flavor != FL_DERIVED) Commenting out the second half of line 15638 (sym->attr.flavor != FL_PROCEDURE) fixed the issue, but hell breaks loose in regtesting...