------- 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

Reply via email to