[Bug fortran/34080] [4.3 regression] Transfer was working, now broken
pault at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Tue Nov 13 20:07:00 GMT 2007
------- 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
More information about the Gcc-bugs
mailing list