diff options
author | Janne Blomqvist <jb@gcc.gnu.org> | 2017-11-18 18:13:20 +0200 |
---|---|---|
committer | Janne Blomqvist <jb@gcc.gnu.org> | 2017-11-18 18:13:20 +0200 |
commit | 831cf09d60eed9f14cb06e83831cf74ea328a3bf (patch) | |
tree | 1f0ffde25ee162d2e83641619ab9b90e6f3791af | |
parent | a814e35ba380d278f95e703efb0cb672987983f7 (diff) | |
download | gcc-831cf09d60eed9f14cb06e83831cf74ea328a3bf.zip gcc-831cf09d60eed9f14cb06e83831cf74ea328a3bf.tar.gz gcc-831cf09d60eed9f14cb06e83831cf74ea328a3bf.tar.bz2 |
PR 44292 Enable large record lengths in OPEN and INQUIRE statements
This is a straightforward change that we can do now that the ABI has
been bumped (again!).
Regtested on x86_64-pc-linux-gnu.
gcc/fortran/ChangeLog:
2017-11-18 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/44292
* ioparm.def (IOPARM): Make recl_in intio, and recl_out pintio.
libgfortran/ChangeLog:
2017-11-18 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/44292
* io/io.h: Make recl_in a GC_IO_INT and recl_out a type
GFC_IO_INT*.
gcc/testsuite/ChangeLog:
2017-11-18 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/44292
* gfortran.dg/large_recl.f90: New test.
From-SVN: r254915
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/ioparm.def | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/large_recl.f90 | 12 | ||||
-rw-r--r-- | libgfortran/ChangeLog | 8 | ||||
-rw-r--r-- | libgfortran/io/io.h | 6 |
6 files changed, 34 insertions, 6 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 8be5518..4334901 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2017-11-18 Janne Blomqvist <jb@gcc.gnu.org> + + PR fortran/44292 + * ioparm.def (IOPARM): Make recl_in intio, and recl_out pintio. + 2017-11-18 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/83012 diff --git a/gcc/fortran/ioparm.def b/gcc/fortran/ioparm.def index ca5631b..5fc04bc 100644 --- a/gcc/fortran/ioparm.def +++ b/gcc/fortran/ioparm.def @@ -34,7 +34,7 @@ IOPARM (common, line, 0, int4) IOPARM (common, iomsg, 1 << 6, char2) IOPARM (common, iostat, 1 << 5, pint4) IOPARM (open, common, 0, common) -IOPARM (open, recl_in, 1 << 7, int4) +IOPARM (open, recl_in, 1 << 7, intio) IOPARM (open, file, 1 << 8, char2) IOPARM (open, status, 1 << 9, char1) IOPARM (open, access, 1 << 10, char2) @@ -63,7 +63,7 @@ IOPARM (inquire, opened, 1 << 8, pint4) IOPARM (inquire, number, 1 << 9, pint4) IOPARM (inquire, named, 1 << 10, pint4) IOPARM (inquire, nextrec, 1 << 11, pint4) -IOPARM (inquire, recl_out, 1 << 12, pint4) +IOPARM (inquire, recl_out, 1 << 12, pintio) IOPARM (inquire, strm_pos_out, 1 << 13, pintio) IOPARM (inquire, file, 1 << 14, char1) IOPARM (inquire, access, 1 << 15, char2) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index dabd308..25cb660 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-11-18 Janne Blomqvist <jb@gcc.gnu.org> + + PR fortran/44292 + * gfortran.dg/large_recl.f90: New test. + 2017-11-18 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/83012 diff --git a/gcc/testsuite/gfortran.dg/large_recl.f90 b/gcc/testsuite/gfortran.dg/large_recl.f90 new file mode 100644 index 0000000..97ac63f --- /dev/null +++ b/gcc/testsuite/gfortran.dg/large_recl.f90 @@ -0,0 +1,12 @@ +! { dg-do run } +! PR 44292 Large RECL= +program large_recl + implicit none + integer(kind=8) :: r + open(10, status="scratch", recl=12345678901_8, form="unformatted", access="direct") + inquire(10, recl=r) + close(10, status="delete") + if (r /= 12345678901_8) then + call abort() + end if +end program large_recl diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index a486eed..fa5646b 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,9 @@ +2017-11-18 Janne Blomqvist <jb@gcc.gnu.org> + + PR fortran/44292 + * io/io.h: Make recl_in a GC_IO_INT and recl_out a type + GFC_IO_INT*. + 2017-11-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com> * acinclude.m4: Add enable.m4, cet.m4. @@ -12,7 +18,7 @@ PR libgfortran/81938 io/format.c (free_format_data): Don't try to free vlist descriptors past the end of the fnode array. - + 2017-10-10 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/82233 diff --git a/libgfortran/io/io.h b/libgfortran/io/io.h index df49157..3330bce 100644 --- a/libgfortran/io/io.h +++ b/libgfortran/io/io.h @@ -308,7 +308,7 @@ unit_sign_s; typedef struct { st_parameter_common common; - GFC_INTEGER_4 recl_in; + GFC_IO_INT recl_in; CHARACTER2 (file); CHARACTER1 (status); CHARACTER2 (access); @@ -388,8 +388,8 @@ typedef struct { st_parameter_common common; GFC_INTEGER_4 *exist, *opened, *number, *named; - GFC_INTEGER_4 *nextrec, *recl_out; - GFC_IO_INT *strm_pos_out; + GFC_INTEGER_4 *nextrec; + GFC_IO_INT *recl_out, *strm_pos_out; CHARACTER1 (file); CHARACTER2 (access); CHARACTER1 (form); |