https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101536
anlauf at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Last reconfirmed| |2021-07-20
--- Comment #2 from anlauf at gcc dot gnu.org ---
Confirmed.
I am testing the following:
diff --git a/gcc/fortran/check.c b/gcc/fortran/check.c
index 27bf3a7eafe..6d2d9fe4007 100644
--- a/gcc/fortran/check.c
+++ b/gcc/fortran/check.c
@@ -735,6 +735,10 @@ array_check (gfc_expr *e, int n)
&& CLASS_DATA (e)->attr.dimension
&& CLASS_DATA (e)->as->rank)
{
+ if (e->ref && e->ref->type == REF_ARRAY
+ && e->ref->u.ar.type == AR_ELEMENT)
+ goto error;
+
gfc_add_class_array_ref (e);
return true;
}
@@ -742,6 +746,7 @@ array_check (gfc_expr *e, int n)
if (e->rank != 0 && e->ts.type != BT_PROCEDURE)
return true;
+error:
gfc_error ("%qs argument of %qs intrinsic at %L must be an array",
gfc_current_intrinsic_arg[n]->name, gfc_current_intrinsic,
&e->where);