https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61831
--- Comment #53 from Mikael Morin <mikael at gcc dot gnu.org> --- (In reply to Dominique d'Humieres from comment #50) > Compiling the original test of pr40440 after revision r225926 gives an ICE: > You can try: Index: trans-array.c =================================================================== --- trans-array.c (révision 225979) +++ trans-array.c (copie de travail) @@ -9166,7 +9166,11 @@ gfc_get_proc_ifc_for_expr (gfc_expr *procedure_ref return NULL; /* Normal procedure case. */ - sym = procedure_ref->symtree->n.sym; + if (procedure_ref->expr_type == EXPR_FUNCTION + && procedure_ref->value.function.esym) + sym = procedure_ref->value.function.esym; + else + sym = procedure_ref->symtree->n.sym; /* Typebound procedure case. */ for (ref = procedure_ref->ref; ref; ref = ref->next)