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

--- Comment #3 from vehre at gcc dot gnu.org ---
This patch fragment fixes the first issue:

diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c
index 5884e7a..8e5428a 100644
--- a/gcc/fortran/trans-stmt.c
+++ b/gcc/fortran/trans-stmt.c
@@ -5485,7 +5485,8 @@ gfc_trans_allocate (gfc_code * code)
                  desc = tmp;
                  tmp = gfc_class_data_get (tmp);
                }
-             e3_is = E3_DESC;
+             if (code->ext.alloc.arr_spec_from_expr3)
+               e3_is = E3_DESC;
            }
          else
            desc = !is_coarray ? se.expr

Reply via email to