This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/34795] New: inquire statement , direct= specifier incorrectly returns YES
- From: "kendrick dot killian at colostate dot edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 15 Jan 2008 11:10:56 -0000
- Subject: [Bug fortran/34795] New: inquire statement , direct= specifier incorrectly returns YES
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
The inquire direct= specifier always returns YES regardless how the file is
created or actually opened.
The bug has been seen on gfortran versions
gcc version 4.1.0 20060304 (Red Hat 4.1.0-3) Target: x86_64-redhat-linux
gcc version 4.1.1 20061011 (Red Hat 4.1.1-30) Target: i386-redhat-linux
gcc version 4.1.2 20070925 (Red Hat 4.1.2-27) Target: x86_64-redhat-linux
gcc version 4.2.0 20060713 (experimental) Target: powerpc-apple-darwin8
Causes code that depends on the returned value to read the file incorrectly and
generate an I/O error
Bug is reproducible with a simple program
==========================================================
program testdirect
character drct*4, acc*12
logical opn
open(unit=19,file='testdirect.f',status='OLD',err=170)
inquire(unit=19, direct=drct, opened=opn, access=acc)
write(*,*) "default open drct=",drct, "opened=",opn, "access=",acc
close(19)
open(unit=19,file='testdirect.f',status='OLD',err=170,
& access='SEQUENTIAL')
inquire(unit=19, direct=drct, opened=opn, access=acc)
write(*,*) "Sequent open drct=",drct, "opened=",opn, "access=",acc
close(19)
open(unit=19,file='testdirect.f',status='OLD',err=170,
& form='UNFORMATTED',access='DIRECT',recl=72)
inquire(unit=19, direct=drct, opened=opn, access=acc)
write(*,*) "direct open drct=",drct, "opened=",opn, "access=",acc
close(19)
stop
170 write(*,*) "ERROR: unable to open testdirect.f"
end
====================================================================
file name: testdirect.f
compiled with: gfortran testdirect.f
File output:
default open drct=YES opened= T access=SEQUENTIAL
Sequent open drct=YES opened= T access=SEQUENTIAL
direct open drct=YES opened= T access=DIRECT
correct output (produced by g77)
default open drct=NO opened= T access=SEQUENTIAL
Sequent open drct=NO opened= T access=SEQUENTIAL
direct open drct=YES opened= T access=DIRECT
--
Summary: inquire statement , direct= specifier incorrectly
returns YES
Product: gcc
Version: 4.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: kendrick dot killian at colostate dot edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34795