http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51434
--- Comment #9 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-12-07 11:44:48 UTC --- (In reply to comment #7) > Any guess when this ICE might get some attention and into a release version? Well, as you can see from the discussion here, it does get attention. But in general: Only regressions have a high priority. (Regression = something which worked before but stopped doing so. At least the code of comment 4 never worked in gfortran.) -- We try hard to fix also the other issues, but as the development is based on volunteers and there are many bugs and feature requests, it might take a while. Release: The GCC development is now in the stabilization phase and GCC 4.7.0 will be presumably released around March next year. See http://gcc.gnu.org/ml/fortran/2011-12/msg00028.html (esp. the "Status" part in the forwarded email). (In reply to comment #4) > That's the line: > else if (mpz_cmp (c->ts.u.cl->length->value.integer, > c->initializer->ts.u.cl->length->value.integer)) > with > c->initializer->ts.u.cl == NULL Draft patch - one probably needs to do something similar for derived types. --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -1500,6 +1500,8 @@ add_init_expr_to_sym (const char *name, gfc_expr **initp, locus *var_locus) &init->where); array->shape = gfc_get_shape (sym->as->rank); + if (init->ts.type == BT_CHARACTER) + array->ts.u.cl = init->ts.u.cl; for (n = 0; n < sym->as->rank; n++) spec_dimen_size (sym->as, n, &array->shape[n]);