------- Comment #7 from pault at gcc dot gnu dot org 2010-05-01 17:16 -------
I do not see any reason not to confirm this one.
This
Index: gcc/fortran/resolve.c
===================================================================
*** gcc/fortran/resolve.c (revision 158958)
--- gcc/fortran/resolve.c (working copy)
*************** resolve_typebound_generic_call (gfc_expr
*** 5132,5137 ****
--- 5132,5138 ----
{
gfc_typebound_proc* genproc;
const char* genname;
+ gfc_symtree *st;
gcc_assert (e->expr_type == EXPR_COMPCALL);
genname = e->value.compcall.name;
*************** resolve_typebound_generic_call (gfc_expr
*** 5199,5204 ****
--- 5200,5214 ----
return FAILURE;
success:
+ genname = e->value.compcall.tbp->u.specific->name;
+ if (*genname == '@')
+ genname = e->value.compcall.tbp->u.specific->n.sym->name;
+
+ st = gfc_find_typebound_proc (e->symtree->n.sym->ts.u.derived, NULL,
+ genname, false, &e->where);
+ if (st)
+ e->value.compcall.tbp = st->n.tb;
+
return SUCCESS;
}
is a fix for the first testcase - the only regression is
dynamic_dispatch_5.f03, which needs dealing with in the same way as the fix for
its PR; ie. the derived type needs to be that of the final reference.
I'll have something ready by the end of the weekend.
Paul
--
pault at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |pault at gcc dot gnu dot org
|dot org |
Status|UNCONFIRMED |ASSIGNED
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2010-05-01 17:16:57
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43945