[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