------- Comment #2 from paul dot richard dot thomas at cea dot fr 2006-05-11 14:02 ------- The patch is simple:
12.5.2.6 RETURN statement R1226 return-stmt is RETURN [ scalar-int-expr ] The int-expr part is implemented in resolve.c(resolve_code); a further condition has been imposed to implement scalar-int-expr. Paul Index: gcc/fortran/resolve.c =================================================================== --- gcc/fortran/resolve.c (r├®vision 113694) +++ gcc/fortran/resolve.c (copie de travail) @@ -4345,9 +4345,10 @@ break; case EXEC_RETURN: - if (code->expr != NULL && code->expr->ts.type != BT_INTEGER) - gfc_error ("Alternate RETURN statement at %L requires an INTEGER " - "return specifier", &code->expr->where); + if (code->expr != NULL + && (code->expr->ts.type != BT_INTEGER || code->expr->rank)) + gfc_error ("Alternate RETURN statement at %L requires an SCALAR-" + "INTEGER return specifier", &code->expr->where); break; case EXEC_ASSIGN: -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25082