diff options
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 34 |
1 files changed, 2 insertions, 32 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index f3ec19c..640a4d8 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -5477,7 +5477,6 @@ resolve_typebound_function (gfc_expr* e) gfc_ref *class_ref; gfc_symtree *st; const char *name; - const char *genname; gfc_typespec ts; st = e->symtree; @@ -5501,11 +5500,6 @@ resolve_typebound_function (gfc_expr* e) c = gfc_find_component (declared, "$data", true, true); declared = c->ts.u.derived; - /* Keep the generic name so that the vtab reference can be made. */ - genname = NULL; - if (e->value.compcall.tbp->is_generic) - genname = e->value.compcall.name; - /* Treat the call as if it is a typebound procedure, in order to roll out the correct name for the specific function. */ if (resolve_compcall (e, &name) == FAILURE) @@ -5521,15 +5515,6 @@ resolve_typebound_function (gfc_expr* e) /* '$vptr' points to the vtab, which contains the procedure pointers. */ gfc_add_component_ref (e, "$vptr"); - if (genname) - { - /* A generic procedure needs the subsidiary vtabs and vtypes for - the specific procedures to have been build. */ - gfc_symbol *vtab; - vtab = gfc_find_derived_vtab (declared, true); - gcc_assert (vtab); - gfc_add_component_ref (e, genname); - } gfc_add_component_ref (e, name); /* Recover the typespec for the expression. This is really only @@ -5552,7 +5537,6 @@ resolve_typebound_subroutine (gfc_code *code) gfc_ref *new_ref; gfc_ref *class_ref; gfc_symtree *st; - const char *genname; const char *name; gfc_typespec ts; @@ -5577,11 +5561,6 @@ resolve_typebound_subroutine (gfc_code *code) c = gfc_find_component (declared, "$data", true, true); declared = c->ts.u.derived; - /* Keep the generic name so that the vtab reference can be made. */ - genname = NULL; - if (code->expr1->value.compcall.tbp->is_generic) - genname = code->expr1->value.compcall.name; - if (resolve_typebound_call (code, &name) == FAILURE) return FAILURE; ts = code->expr1->ts; @@ -5595,15 +5574,6 @@ resolve_typebound_subroutine (gfc_code *code) /* '$vptr' points to the vtab, which contains the procedure pointers. */ gfc_add_component_ref (code->expr1, "$vptr"); - if (genname) - { - /* A generic procedure needs the subsidiary vtabs and vtypes for - the specific procedures to have been build. */ - gfc_symbol *vtab; - vtab = gfc_find_derived_vtab (declared, true); - gcc_assert (vtab); - gfc_add_component_ref (code->expr1, genname); - } gfc_add_component_ref (code->expr1, name); /* Recover the typespec for the expression. This is really only @@ -7505,7 +7475,7 @@ resolve_select_type (gfc_code *code) new_st->expr1->value.function.actual = gfc_get_actual_arglist (); new_st->expr1->value.function.actual->expr = gfc_get_variable_expr (code->expr1->symtree); gfc_add_component_ref (new_st->expr1->value.function.actual->expr, "$vptr"); - vtab = gfc_find_derived_vtab (body->ext.case_list->ts.u.derived, true); + vtab = gfc_find_derived_vtab (body->ext.case_list->ts.u.derived); st = gfc_find_symtree (vtab->ns->sym_root, vtab->name); new_st->expr1->value.function.actual->next = gfc_get_actual_arglist (); new_st->expr1->value.function.actual->next->expr = gfc_get_variable_expr (st); @@ -10777,7 +10747,7 @@ resolve_fl_derived (gfc_symbol *sym) gfc_component *vptr = gfc_find_component (sym, "$vptr", true, true); if (vptr->ts.u.derived == NULL) { - gfc_symbol *vtab = gfc_find_derived_vtab (data->ts.u.derived, false); + gfc_symbol *vtab = gfc_find_derived_vtab (data->ts.u.derived); gcc_assert (vtab); vptr->ts.u.derived = vtab->ts.u.derived; } |