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

kargl at gcc dot gnu.org changed:

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

--- Comment #2 from kargl at gcc dot gnu.org ---
Patch.  Check if a or b is zero-sized.

diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c
index 388aca7c38c..6c5259c648d 100644
--- a/gcc/fortran/simplify.c
+++ b/gcc/fortran/simplify.c
@@ -4728,7 +4728,9 @@ gfc_simplify_matmul (gfc_expr *matrix_a, gfc_expr
*matrix_b)
   int stride_a, offset_a, stride_b, offset_b;

   if (!is_constant_array_expr (matrix_a)
-      || !is_constant_array_expr (matrix_b))
+      || gfc_is_size_zero_array (matrix_a)
+      || !is_constant_array_expr (matrix_b)
+      || gfc_is_size_zero_array (matrix_b))
     return NULL;

   /* MATMUL should do mixed-mode arithmetic.  Set the result type.  */

Reply via email to