------- 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

Reply via email to