[Bug fortran/51434] ICE with scalar init of an array parameter, used in DT default init with transfer

burnus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Dec 7 11:45:00 GMT 2011


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]);



More information about the Gcc-bugs mailing list