http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46205

--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-11 
13:07:03 UTC ---
Untested patch:

Index: resolve.c
===================================================================
--- resolve.c   (Revision 166598)
+++ resolve.c   (Arbeitskopie)
@@ -9098,8 +9098,9 @@ resolve_code (gfc_code *code, gfc_namesp
        case EXEC_FORALL:
          resolve_forall_iterators (code->ext.forall_iterator);

-         if (code->expr1 != NULL && code->expr1->ts.type != BT_LOGICAL)
-           gfc_error ("FORALL mask clause at %L requires a LOGICAL "
+         if (code->expr1 != NULL
+             && (code->expr1->ts.type != BT_LOGICAL || code->expr1->rank))
+           gfc_error ("FORALL mask clause at %L requires a scalar LOGICAL "
                       "expression", &code->expr1->where);
          break;

Reply via email to