https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83057

Harald Anlauf <anlauf at gmx dot de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |anlauf at gmx dot de

--- Comment #4 from Harald Anlauf <anlauf at gmx dot de> ---
The following obvious patch to the logic fixes the NEWUNIT issue:

Index: gcc/fortran/io.c
===================================================================
--- gcc/fortran/io.c    (revision 269028)
+++ gcc/fortran/io.c    (working copy)
@@ -2504,16 +2504,15 @@
          goto cleanup;
        }

-      if (!open->file && open->status)
-        {
-         if (open->status->expr_type == EXPR_CONSTANT
+      if (!open->file &&
+         (!open->status ||
+          (open->status->expr_type == EXPR_CONSTANT
             && gfc_wide_strncasecmp (open->status->value.character.string,
-                                      "scratch", 7) != 0)
-          {
+                                     "scratch", 7) != 0)))
+       {
             gfc_error ("NEWUNIT specifier must have FILE= "
                        "or STATUS='scratch' at %C");
             goto cleanup;
-          }
        }
     }
   else if (!open->unit)

I do not think we need to handle the other case,
as many people expect the file fort.20 to be created.
(At least I do.)

Reply via email to