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