https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90561

--- Comment #9 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
... and this

Index: trans-expr.c
===================================================================
--- trans-expr.c        (Revision 274370)
+++ trans-expr.c        (Arbeitskopie)
@@ -10796,7 +10796,13 @@ gfc_trans_assignment_1 (gfc_expr * expr1, gfc_expr
       if (expr1->ts.deferred
          && gfc_expr_attr (expr1).allocatable
          && gfc_check_dependency (expr1, expr2, true))
-       rse.string_length = gfc_evaluate_now (rse.string_length, &rse.pre);
+       {
+         /* Add the variable to function scope.  */
+         tree str_len;
+         str_len = gfc_create_var_np (TREE_TYPE (rse.string_length), NULL);
+         gfc_add_decl_to_function (str_len);
+         gfc_add_modify (&rse.pre, str_len, rse.string_length);
+       }
       string_length = rse.string_length;
     }
   else

causes a regression in dependency_52.f90.

Reply via email to