This is accomplished by making the NEXTREC specifier be a 8 byte integer where supported. I wasn't able to come up with a testcase that does not create a large file that could be added to the testsuite, but here's one which creates a 2 GB file: program nextrec implicit none integer(8) :: ii, n open(10, file="foo.dat", recl=1, access="direct", form="unformatted", & status="replace") do ii = 1, huge(1) + 2_8 write(10, rec=ii) 'a' end do inquire(10, nextrec=n) if (n /= huge(1) + 3_8) then call abort() end if close(10, status="delete") end program nextrec Regtested on x86_64-pc-linux-gnu. gcc/fortran/ChangeLog: 2017-11-18 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/83036 * ioparm.def (IOPARM): Make nextrec a pintio. libgfortran/ChangeLog: 2017-11-18 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/83036 * io/io.h: Make nextrec a GFC_IO_INT*. --- gcc/fortran/ioparm.def | 2 +- libgfortran/io/io.h | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/gcc/fortran/ioparm.def b/gcc/fortran/ioparm.def index 5fc04bc..59cc7cd 100644 --- a/gcc/fortran/ioparm.def +++ b/gcc/fortran/ioparm.def @@ -62,7 +62,7 @@ IOPARM (inquire, exist, 1 << 7, pint4) 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, nextrec, 1 << 11, pintio) IOPARM (inquire, recl_out, 1 << 12, pintio) IOPARM (inquire, strm_pos_out, 1 << 13, pintio) IOPARM (inquire, file, 1 << 14, char1) diff --git a/libgfortran/io/io.h b/libgfortran/io/io.h index 3330bce..d29b112 100644 --- a/libgfortran/io/io.h +++ b/libgfortran/io/io.h @@ -388,8 +388,7 @@ typedef struct { st_parameter_common common; GFC_INTEGER_4 *exist, *opened, *number, *named; - GFC_INTEGER_4 *nextrec; - GFC_IO_INT *recl_out, *strm_pos_out; + GFC_IO_INT *nextrec, *recl_out, *strm_pos_out; CHARACTER1 (file); CHARACTER2 (access); CHARACTER1 (form); -- 2.7.4 From-SVN: r254916
Name |
Last commit
|
Last update |
---|---|---|
INSTALL | Loading commit data... | |
config | Loading commit data... | |
contrib | Loading commit data... | |
fixincludes | Loading commit data... | |
gcc | Loading commit data... | |
gnattools | Loading commit data... | |
gotools | Loading commit data... | |
include | Loading commit data... | |
intl | Loading commit data... | |
libada | Loading commit data... | |
libatomic | Loading commit data... | |
libbacktrace | Loading commit data... | |
libcc1 | Loading commit data... | |
libcilkrts | Loading commit data... | |
libcpp | Loading commit data... | |
libdecnumber | Loading commit data... | |
libffi | Loading commit data... | |
libgcc | Loading commit data... | |
libgfortran | Loading commit data... | |
libgo | Loading commit data... | |
libgomp | Loading commit data... | |
libhsail-rt | Loading commit data... | |
libiberty | Loading commit data... | |
libitm | Loading commit data... | |
libmpx | Loading commit data... | |
libobjc | Loading commit data... | |
liboffloadmic | Loading commit data... | |
libquadmath | Loading commit data... | |
libsanitizer | Loading commit data... | |
libssp | Loading commit data... | |
libstdc++-v3 | Loading commit data... | |
libvtv | Loading commit data... | |
lto-plugin | Loading commit data... | |
maintainer-scripts | Loading commit data... | |
zlib | Loading commit data... | |
.dir-locals.el | Loading commit data... | |
.gitattributes | Loading commit data... | |
.gitignore | Loading commit data... | |
ABOUT-NLS | Loading commit data... | |
COPYING | Loading commit data... | |
COPYING.LIB | Loading commit data... | |
COPYING.RUNTIME | Loading commit data... | |
COPYING3 | Loading commit data... | |
COPYING3.LIB | Loading commit data... | |
ChangeLog | Loading commit data... | |
ChangeLog.jit | Loading commit data... | |
ChangeLog.tree-ssa | Loading commit data... | |
MAINTAINERS | Loading commit data... | |
Makefile.def | Loading commit data... | |
Makefile.in | Loading commit data... | |
Makefile.tpl | Loading commit data... | |
README | Loading commit data... | |
compile | Loading commit data... | |
config-ml.in | Loading commit data... | |
config.guess | Loading commit data... | |
config.rpath | Loading commit data... | |
config.sub | Loading commit data... | |
configure | Loading commit data... | |
configure.ac | Loading commit data... | |
depcomp | Loading commit data... | |
install-sh | Loading commit data... | |
libtool-ldflags | Loading commit data... | |
libtool.m4 | Loading commit data... | |
ltgcc.m4 | Loading commit data... | |
ltmain.sh | Loading commit data... | |
ltoptions.m4 | Loading commit data... | |
ltsugar.m4 | Loading commit data... | |
ltversion.m4 | Loading commit data... | |
lt~obsolete.m4 | Loading commit data... | |
missing | Loading commit data... | |
mkdep | Loading commit data... | |
mkinstalldirs | Loading commit data... | |
move-if-change | Loading commit data... | |
symlink-tree | Loading commit data... | |
ylwrap | Loading commit data... |