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;