diff options
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 5c9786b7410..3924dc69aa9 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -858,6 +858,13 @@ resolve_actual_arglist (gfc_actual_arglist * arg) &e->where); } + if (sym->attr.generic) + { + gfc_error ("GENERIC non-INTRINSIC procedure '%s' is not " + "allowed as an actual argument at %L", sym->name, + &e->where); + } + /* If the symbol is the function that names the current (or parent) scope, then we really have a variable reference. */ @@ -2883,10 +2890,10 @@ resolve_variable (gfc_expr * e) t = SUCCESS; - if (e->ref && resolve_ref (e) == FAILURE) + if (e->symtree == NULL) return FAILURE; - if (e->symtree == NULL) + if (e->ref && resolve_ref (e) == FAILURE) return FAILURE; sym = e->symtree->n.sym; @@ -5360,7 +5367,6 @@ static try resolve_fl_derived (gfc_symbol *sym) { gfc_component *c; - gfc_dt_list * dt_list; int i; for (c = sym->components; c != NULL; c = c->next) @@ -5423,12 +5429,6 @@ resolve_fl_derived (gfc_symbol *sym) } } - /* Add derived type to the derived type list. */ - dt_list = gfc_get_dt_list (); - dt_list->next = sym->ns->derived_types; - dt_list->derived = sym; - sym->ns->derived_types = dt_list; - return SUCCESS; } |