------- Comment #4 from pault at gcc dot gnu dot org 2009-05-06 20:46 ------- This fixes it and is regtesting right now.
Index: gcc/fortran/trans-array.c =================================================================== --- gcc/fortran/trans-array.c (revision 147128) +++ gcc/fortran/trans-array.c (working copy) @@ -1620,6 +1620,7 @@ { gfc_init_se (&se, NULL); gfc_conv_constant (&se, c->expr); + se.expr = fold_convert (type, se.expr); if (c->expr->ts.type == BT_CHARACTER && POINTER_TYPE_P (type)) se.expr = gfc_build_addr_expr (gfc_get_pchar_type (c->expr->ts.kind), se.expr); I am looking to see if this cannot be done in the front-end. Note the enormous difference in the code produced in 4.3, compared with 4.4 and trunk. Fixing assignments exposed this little gem! Paul -- pault at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |pault at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2009-05-05 08:00:19 |2009-05-06 20:46:37 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40018