[PATCH, fortran, ping] PR60289 was: PR fortran/60255 Deferred character length + PR60289 Also deferred char len.

Andre Vehreschild vehre@gmx.de
Fri Jan 30 10:20:00 GMT 2015


Hi Paul,

thanks for the review. Meanwhile I reread the patch myself and figured, that
the comment in the second patch-block was ill-placed and formulated. I therefore
changed it to look like this now:

diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c
index 52caaa4..24fab5c 100644
--- a/gcc/fortran/trans-stmt.c
+++ b/gcc/fortran/trans-stmt.c
@@ -5166,7 +5166,16 @@ gfc_trans_allocate (gfc_code * code)
              se_sz.expr = gfc_evaluate_now (se_sz.expr, &se.pre);
              gfc_add_block_to_block (&se.pre, &se_sz.post);
              /* Store the string length.  */
-             tmp = al->expr->ts.u.cl->backend_decl;
+             if ((expr->symtree->n.sym->ts.type == BT_CLASS
+                 || expr->symtree->n.sym->ts.type == BT_DERIVED)
+                 && expr->ts.u.derived->attr.unlimited_polymorphic)
+               /* For unlimited polymorphic entities get the backend_decl of
+                  the _len component for that.  */
+               tmp = gfc_class_len_get (gfc_get_symbol_decl (
+                                          expr->symtree->n.sym));
+             else
+               /* Else use what is stored in the charlen->backend_decl.  */
+               tmp = al->expr->ts.u.cl->backend_decl;
              gfc_add_modify (&se.pre, tmp, fold_convert (TREE_TYPE (tmp),
                              se_sz.expr));
               tmp = TREE_TYPE (gfc_typenode_for_spec (&code->ext.alloc.ts));

I still hope this is ok for commit. As a newbie, I don't want to mess it up in
the beginning and therefore ask one more time for permission.

On Thu, 29 Jan 2015 20:13:49 +0000
Paul Richard Thomas <paul.richard.thomas@gmail.com> wrote:

> I must apologise. I have been working so hard on my own projects that
> I failed completely to notice that your patch had not been applied.

No problem. Hadn't I been asked, I would have forgotten about it, too. I am
working on a bunch of class-array issues starting with pr60322 currently. I
hope to be able to submit a patch for it today.

Regards,
	Andre
-- 
Andre Vehreschild * Email: vehre ad gmx dot de 



More information about the Fortran mailing list