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

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
         AssignedTo|unassigned at gcc dot       |janus at gcc dot gnu.org
                   |gnu.org                     |
            Summary|[4.6 Regression]            |[4.6 Regression] [OOP]
                   |mio_component_ref():        |mio_component_ref():
                   |Component not found         |Component not found

--- Comment #35 from janus at gcc dot gnu.org 2010-12-27 15:36:44 UTC ---
(In reply to comment #34)
> Does this help?

Yes, I think I know what's going on. One way to fix it is the following:

Index: gcc/fortran/module.c
===================================================================
--- gcc/fortran/module.c        (revision 168019)
+++ gcc/fortran/module.c        (working copy)
@@ -2317,6 +2317,9 @@ mio_component_ref (gfc_component **cp, gfc_symbol
       if (sym == NULL)
        return;

+      if (sym->attr.is_class)
+       sym = sym->components->ts.u.derived;
+      
       if (sym->components != NULL && p->u.pointer == NULL)
        {
          /* Symbol already loaded, so search by name.  */

Reply via email to