[Bug fortran/59502] [OOP] ICE on invalid on pointer assignment to non-pointer CLASS

janus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat Dec 14 09:00:00 GMT 2013


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

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-invalid-code
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2013-12-14
                 CC|                            |janus at gcc dot gnu.org
           Assignee|unassigned at gcc dot gnu.org      |janus at gcc dot gnu.org
            Summary|ICE on invalid on pointer   |[OOP] ICE on invalid on
                   |assignment to non-pointer   |pointer assignment to
                   |CLASS                       |non-pointer CLASS
     Ever confirmed|0                           |1

--- Comment #1 from janus at gcc dot gnu.org ---
Confirmed. Patch:

Index: gcc/fortran/primary.c
===================================================================
--- gcc/fortran/primary.c    (revision 205960)
+++ gcc/fortran/primary.c    (working copy)
@@ -2039,9 +2039,8 @@ gfc_match_varspec (gfc_expr *primary, int equiv_fl
       if (m != MATCH_YES)
         return m;
     }
-      else if (component->ts.type == BT_CLASS
-           && CLASS_DATA (component)->as != NULL
-           && !component->attr.proc_pointer)
+      else if (component->ts.type == BT_CLASS && component->attr.class_ok
+           && CLASS_DATA (component)->as && !component->attr.proc_pointer)
     {
       tail = extend_ref (primary, tail);
       tail->type = REF_ARRAY;



More information about the Gcc-bugs mailing list