open.c (new_unit): set record length to max_offset rather than using a hard-coded...
authorFrancois-Xavier Coudert <coudert@clipper.ens.fr>
Wed, 16 Mar 2005 19:32:08 +0000 (20:32 +0100)
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>
Wed, 16 Mar 2005 19:32:08 +0000 (19:32 +0000)
* open.c (new_unit): set record length to max_offset rather than
  using a hard-coded limit (which was too low).

* write_big_array.f90: New test.

From-SVN: r96573

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pr20257.f90 [new file with mode: 0644]
libgfortran/ChangeLog
libgfortran/io/open.c

index e3e9cec..f6e234e 100644 (file)
@@ -1,5 +1,10 @@
 2005-03-16  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
 
+       PR libfortran/20257
+       * pr20257.f90: New test.
+
+2005-03-16  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
        PR libfortran/20480
        * pr20480.f90: New test.
 
diff --git a/gcc/testsuite/gfortran.dg/pr20257.f90 b/gcc/testsuite/gfortran.dg/pr20257.f90
new file mode 100644 (file)
index 0000000..3808829
--- /dev/null
@@ -0,0 +1,9 @@
+! { dg-do run }
+  integer,parameter :: n = 10000
+  real(8) array(10000)
+
+  array(:) = 0
+  open (10, status='scratch')
+  write (10,*) array
+  close (10)
+end
index 43a2d9d..b18aa05 100644 (file)
@@ -1,5 +1,11 @@
 2005-03-16  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
 
+       PR libfortran/20257
+       * open.c (new_unit): set record length to max_offset rather than
+         using a hard-coded limit (which was too low).
+
+2005-03-16  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
        PR libfortran/20480
        * write.c (output_float): special check when writing 0.0 with
          EN and ES formats.
index eaeb5a2..3d0e5be 100644 (file)
@@ -358,7 +358,7 @@ new_unit (unit_flags * flags)
 
   /* Unspecified recl ends up with a processor dependent value.  */
 
-  u->recl = (ioparm.recl_in != 0) ? ioparm.recl_in : DEFAULT_RECL;
+  u->recl = (ioparm.recl_in != 0) ? ioparm.recl_in : g.max_offset;
   u->last_record = 0;
   u->current_record = 0;