http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58618
Tobias Burnus <burnus at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |ice-on-valid-code Status|UNCONFIRMED |NEW Last reconfirmed| |2013-10-05 CC| |burnus at gcc dot gnu.org Summary|ICE with character array |ICE with character |and ASSOCIATE |substring and ASSOCIATE Ever confirmed|0 |1 Known to fail| |4.8.1, 4.9.0 --- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> --- The ICE occurs in resolve_fl_variable 10795 e = sym->ts.u.cl->length; Here, sym is "x" and ts.u.cl == NULL. Without the substring, ts.u.cl matches "s"'s ts.u.cl (same pointer address). The variable is set in parse.c's parse_associate: 3404 sym->ts = a->target->ts; If the RHS is not a substring, it works. If it is, a->target->ts.u.cl is NULL and the length is only in the REF_SUBSTRING expression at a->target->ref->next->u.ss.length->length