------- Comment #4 from pault at gcc dot gnu dot org 2007-11-13 20:07 ------- The regression occurred at r129505. Allowance was not made in the correction to gfc_resolve_transfer for assumed size dummy arguments. This fixes it:
Index: /svn/trunk/gcc/fortran/iresolve.c =================================================================== *** /svn/trunk/gcc/fortran/iresolve.c (revision 130152) --- /svn/trunk/gcc/fortran/iresolve.c (working copy) *************** gfc_resolve_transfer (gfc_expr *f, gfc_e *** 2283,2289 **** /* TODO: Make this do something meaningful. */ static char transfer0[] = "__transfer0", transfer1[] = "__transfer1"; ! if (mold->ts.type == BT_CHARACTER && !mold->ts.cl->length) mold->ts.cl->length = gfc_int_expr (mold->value.character.length); f->ts = mold->ts; --- 2283,2290 ---- /* TODO: Make this do something meaningful. */ static char transfer0[] = "__transfer0", transfer1[] = "__transfer1"; ! if (mold->ts.type == BT_CHARACTER && !mold->ts.cl->length ! && !(mold->expr_type == EXPR_VARIABLE && mold->symtree->n.sym->attr.dummy)) mold->ts.cl->length = gfc_int_expr (mold->value.character.length); f->ts = mold->ts; It's just now regtesting with a couple of other fixes. I'll clean this patch up and commit it as obvious (the others I will submit). 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|2007-11-13 13:55:55 |2007-11-13 20:07:30 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34080