http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58916
--- Comment #2 from janus at gcc dot gnu.org --- The following is sufficient to reject comment 1, but does not reject comment 0: Index: gcc/fortran/resolve.c =================================================================== --- gcc/fortran/resolve.c (revision 205785) +++ gcc/fortran/resolve.c (working copy) @@ -6594,7 +6594,8 @@ conformable_arrays (gfc_expr *e1, gfc_expr *e2) for (tail = e2->ref; tail && tail->next; tail = tail->next); /* First compare rank. */ - if (tail && e1->rank != tail->u.ar.as->rank) + if ((tail && e1->rank != tail->u.ar.as->rank) + || (!tail && e1->rank != e2->rank)) { gfc_error ("Source-expr at %L must be scalar or have the " "same rank as the allocate-object at %L",