https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105381
--- Comment #1 from Mikael Morin <mikael at gcc dot gnu.org> --- Draft patch. diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc index e4b6270ccf8..e0070aa080d 100644 --- a/gcc/fortran/trans-array.cc +++ b/gcc/fortran/trans-array.cc @@ -3698,7 +3698,8 @@ non_negative_strides_array_p (tree expr) if (DECL_P (expr) && DECL_LANG_SPECIFIC (expr)) if (tree orig_decl = GFC_DECL_SAVED_DESCRIPTOR (expr)) - return non_negative_strides_array_p (orig_decl); + if (orig_decl != expr) + return non_negative_strides_array_p (orig_decl); return true; }