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

anlauf at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|gfortran 11/trunk           |[11/12 Regression]
                   |regression: incorrect       |incorrect Fortran
                   |Fortran out-of-bound        |out-of-bound runtime error.
                   |runtime error.              |
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2022-03-15
           Priority|P3                          |P4

--- Comment #1 from anlauf at gcc dot gnu.org ---
Likely caused by the fix for PR95331 (r11-1235).  Class-related.
Applying

diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc
index cfb6eac11c7..3a14600101f 100644
--- a/gcc/fortran/trans-array.cc
+++ b/gcc/fortran/trans-array.cc
@@ -3864,8 +3864,8 @@ gfc_conv_array_ref (gfc_se * se, gfc_array_ref * ar,
gfc_expr *expr,
     }

   decl = se->expr;
-  if (IS_CLASS_ARRAY (sym) && sym->attr.dummy && ar->as->type != AS_DEFERRED)
-    decl = sym->backend_decl;
+  // if (IS_CLASS_ARRAY (sym) && sym->attr.dummy && ar->as->type !=
AS_DEFERRED)
+  //   decl = sym->backend_decl;

   cst_offset = offset = gfc_index_zero_node;
   add_to_offset (&cst_offset, &offset, gfc_conv_array_offset (decl));

apparently "fixes" the wrong bounds check.

Reply via email to