https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56423
anlauf at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |anlauf at gcc dot gnu.org --- Comment #5 from anlauf at gcc dot gnu.org --- The rank mismatch is detected with: diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc index 7adbf958aec..112874e53f6 100644 --- a/gcc/fortran/resolve.cc +++ b/gcc/fortran/resolve.cc @@ -1370,7 +1373,7 @@ resolve_structure_cons (gfc_expr *expr, int init) gfc_find_vtab (&cons->expr->ts); if (cons->expr->expr_type != EXPR_NULL && rank != cons->expr->rank - && (comp->attr.allocatable || cons->expr->rank)) + && (comp->attr.allocatable || comp->attr.pointer || cons->expr->rank)) { gfc_error ("The rank of the element in the structure " "constructor at %L does not match that of the " This gives: pr56423-z2.f90:7:8: 7 | z = t(x(2)) | 1 Error: The rank of the element in the structure constructor at (1) does not match that of the component (0/1) in agreement with other brands. Still missing: detection of invalid vector subscripts.