OSDN Git Service

PR libfortran/20950
authorfxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 18 Apr 2005 07:34:32 +0000 (07:34 +0000)
committerfxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 18 Apr 2005 07:34:32 +0000 (07:34 +0000)
* io/inquire.c (inquire_via_unit): Check for the gfc_unit being
NULL when setting ioparm.sequential.
* gfortran.dg/pr20950.f: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98312 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pr20950.f [new file with mode: 0644]
libgfortran/ChangeLog
libgfortran/io/inquire.c

index 5f6cf35..1dd0db7 100644 (file)
@@ -1,3 +1,8 @@
+2005-04-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+       PR libfortran/20950
+       * gfortran.dg/pr20950.f: New test.
+
 2005-04-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
 
        PR libfortran/19216
diff --git a/gcc/testsuite/gfortran.dg/pr20950.f b/gcc/testsuite/gfortran.dg/pr20950.f
new file mode 100644 (file)
index 0000000..c132548
--- /dev/null
@@ -0,0 +1,7 @@
+! PR libfortran/20950
+! Original bug-report by Walt Brainerd, The Fortran Company
+! { dg-do run }
+      character*20 c
+      inquire (33, sequential = c)
+      if (c .ne. "UNKNOWN") call abort
+      end
index 045f8ce..f4716af 100644 (file)
@@ -1,3 +1,9 @@
+2005-04-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+       PR libfortran/20950
+       * io/inquire.c (inquire_via_unit): Check for the gfc_unit being
+       NULL when setting ioparm.sequential.
+
 2005-04-17  Thomas Koenig  <Thomas.Koenig@online.de>
 
        PR libfortran/21075
index 1f0fcac..731adad 100644 (file)
@@ -87,13 +87,16 @@ inquire_via_unit (gfc_unit * u)
 
   if (ioparm.sequential != NULL)
     {
-      /* disallow an open direct access file to be accessed
-         sequentially */
-      if (u->flags.access==ACCESS_DIRECT)
-        p = "NO";
-      else   
-        p = (u == NULL) ? inquire_sequential (NULL, 0) :
-        inquire_sequential (u->file, u->file_len);
+      if (u == NULL)
+       p = inquire_sequential (NULL, 0);
+      else
+       {
+          /* disallow an open direct access file to be accessed sequentially */
+          if (u->flags.access == ACCESS_DIRECT)
+            p = "NO";
+          else   
+            p = inquire_sequential (u->file, u->file_len);
+       }
 
       cf_strcpy (ioparm.sequential, ioparm.sequential_len, p);
     }