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

Thomas Koenig <tkoenig at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pault at gcc dot gnu.org

--- Comment #34 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
This

Index: trans-expr.c
===================================================================
--- trans-expr.c        (Revision 269260)
+++ trans-expr.c        (Arbeitskopie)
@@ -10510,6 +10510,9 @@
       if (is_poly_assign && expr2->rank == 0 && !UNLIMITED_POLY (expr2))
        rss->info->type = GFC_SS_REFERENCE;

+      gfc_fix_class_refs (rss->info->expr);
+      gfc_fix_class_refs (lss->info->expr);
+
       rss->no_bounds_check = expr2->no_bounds_check;
       /* Associate the SS with the loop.  */
       gfc_add_ss_to_loop (&loop, lss);
Index: trans-array.c
===================================================================
--- trans-array.c       (Revision 269260)
+++ trans-array.c       (Arbeitskopie)
@@ -2699,6 +2699,8 @@
   if (ss_info->type != GFC_SS_REFERENCE)
     return false;

+  return false;
+
   /* If the actual argument can be absent (in other words, it can
      be a NULL reference), don't try to evaluate it; pass instead
      the reference directly.  */

"fixes" the test case from comment#32, but, as expected, causes no few
regressions.

Paul, if you happen to have an idea...

Reply via email to