http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47463

--- Comment #11 from janus at gcc dot gnu.org 2011-02-09 18:08:45 UTC ---
The strange behavior of the test case in comment #9 can be cured by just
removing one peculiar line of code:

Index: gcc/fortran/resolve.c
===================================================================
--- gcc/fortran/resolve.c    (revision 169977)
+++ gcc/fortran/resolve.c    (working copy)
@@ -5894,7 +5894,6 @@ resolve_typebound_subroutine (gfc_code *code)
       name = name ? name : code->expr1->value.function.esym->name;
       code->expr1->symtree = expr->symtree;
       code->expr1->ref = gfc_copy_ref (expr->ref);
-      expr->symtree->n.sym->ts.u.derived = declared;
       gfc_add_vptr_component (code->expr1);
       gfc_add_component_ref (code->expr1, name);
       code->expr1->value.function.esym = NULL;


This line seems completely bogus to me. I have no idea what it's supposed to
do. In any case it came from the following commit:

http://gcc.gnu.org/viewcvs/trunk/gcc/fortran/resolve.c?r1=162313&r2=162312&pathrev=162313

Reply via email to