aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJanne Blomqvist <jb@gcc.gnu.org>2017-11-18 18:13:20 +0200
committerJanne Blomqvist <jb@gcc.gnu.org>2017-11-18 18:13:20 +0200
commit831cf09d60eed9f14cb06e83831cf74ea328a3bf (patch)
tree1f0ffde25ee162d2e83641619ab9b90e6f3791af /gcc
parenta814e35ba380d278f95e703efb0cb672987983f7 (diff)
downloadgcc-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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/ioparm.def4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/large_recl.f9012
4 files changed, 24 insertions, 2 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