https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61780
Mikael Morin <mikael at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |mikael at gcc dot gnu.org
--- Comment #1 from Mikael Morin <mikael at gcc dot gnu.org> ---
This sets loop reversal in dependency.c:
/* Set reverse if backward dependence and not inhibited. */
if (reverse && reverse[n] == GFC_ENABLE_REVERSE)
reverse[n] = (this_dep == GFC_DEP_BACKWARD) ?
GFC_REVERSE_SET : reverse[n];
However, the 'n' used indexes over array ref dimension, so in the case at hand
the second element is flagged as GFC_REVERSE_SET.
But the 'reverse' array is used later on using scalarizer dimensions, and as
y(k,4:n) and y(k,3:n-1) are one-dimension arrays, only the first element of
'reverse' is ever looked at.