diff options
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index bccb46a..c03f6a6 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -2913,23 +2913,26 @@ resolve_call (gfc_code *c) t = SUCCESS; if (c->resolved_sym == NULL) - switch (procedure_kind (csym)) - { - case PTYPE_GENERIC: - t = resolve_generic_s (c); - break; + { + c->resolved_isym = NULL; + switch (procedure_kind (csym)) + { + case PTYPE_GENERIC: + t = resolve_generic_s (c); + break; - case PTYPE_SPECIFIC: - t = resolve_specific_s (c); - break; + case PTYPE_SPECIFIC: + t = resolve_specific_s (c); + break; - case PTYPE_UNKNOWN: - t = resolve_unknown_s (c); - break; + case PTYPE_UNKNOWN: + t = resolve_unknown_s (c); + break; - default: - gfc_internal_error ("resolve_subroutine(): bad function type"); - } + default: + gfc_internal_error ("resolve_subroutine(): bad function type"); + } + } /* Some checks of elemental subroutine actual arguments. */ if (resolve_elemental_actual (NULL, c) == FAILURE) |