aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gfortran.dg/inquire_13.f90
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2014-03-25 22:37:19 -0700
committerBen Cheng <bccheng@google.com>2014-03-25 22:37:19 -0700
commit1bc5aee63eb72b341f506ad058502cd0361f0d10 (patch)
treec607e8252f3405424ff15bc2d00aa38dadbb2518 /gcc-4.9/gcc/testsuite/gfortran.dg/inquire_13.f90
parent283a0bf58fcf333c58a2a92c3ebbc41fb9eb1fdb (diff)
downloadtoolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.gz
toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.bz2
toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.zip
Initial checkin of GCC 4.9.0 from trunk (r208799).
Change-Id: I48a3c08bb98542aa215912a75f03c0890e497dba
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gfortran.dg/inquire_13.f90')
-rw-r--r--gcc-4.9/gcc/testsuite/gfortran.dg/inquire_13.f90103
1 files changed, 103 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gfortran.dg/inquire_13.f90 b/gcc-4.9/gcc/testsuite/gfortran.dg/inquire_13.f90
new file mode 100644
index 000000000..d074861a9
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gfortran.dg/inquire_13.f90
@@ -0,0 +1,103 @@
+! { dg-do run }
+! { dg-options "-std=legacy" }
+!
+! PR34795 inquire statement , direct= specifier incorrectly returns YES
+! Test case from PR, modified by Jerry DeLisle <jvdelisle@gcc.gnu.org
+program testinquire
+implicit none
+character drct*7, acc*12, frmt*12, seqn*12, fname*15
+logical opn
+
+fname="inquire_13_test"
+inquire(unit=6, direct=drct, opened=opn, access=acc)
+if (drct.ne."NO" .and. .not.opn .and. acc.ne."SEQUENTIAL") call abort
+
+inquire(unit=10, direct=drct, opened=opn, access=acc)
+if (drct.ne."UNKNOWN" .and. opn .and. acc.ne."UNDEFINED") call abort
+
+inquire(unit=10, direct=drct, opened=opn, access=acc, formatted=frmt)
+if (drct.ne."UNKNOWN" .and. opn .and. acc.ne."UNDEFINED") call abort
+if (frmt.ne."UNKNOWN") call abort
+
+open(unit=19,file=fname,status='replace',err=170,form="formatted")
+inquire(unit=19, direct=drct, opened=opn, access=acc,formatted=frmt)
+if (drct.ne."NO" .and. .not.opn .and. acc.ne."SEQUENTIAL") call abort
+if (frmt.ne."YES") call abort
+
+! Inquire on filename, open file with DIRECT and FORMATTED
+inquire(file=fname, direct=drct, opened=opn, access=acc, FORMATTED=frmt)
+if (drct.ne."NO" .and. .not.opn .and. acc.ne."SEQUENTIAL") call abort
+if (frmt.ne."YES") call abort
+close(19)
+
+! Inquire on filename, closed file with DIRECT and FORMATTED
+inquire(file=fname, direct=drct, opened=opn, access=acc, formatted=frmt)
+if (drct.ne."UNKNOWN" .and. opn .and. acc.ne."UNDEFINED") call abort
+if (frmt.ne."UNKNOWN") call abort
+
+open(unit=19,file=fname,status='replace',err=170,form="unformatted")
+inquire(unit=19, direct=drct, opened=opn, access=acc, formatted=frmt)
+if (drct.ne."NO" .and. .not.opn .and. acc.ne."SEQUENTIAL") call abort
+if (frmt.ne."NO") call abort
+close(19)
+
+open(unit=19,file=fname,status='replace',err=170,form="formatted")
+
+inquire(unit=19, direct=drct, opened=opn, access=acc, unformatted=frmt)
+if (drct.ne."NO" .and. .not.opn .and. acc.ne."SEQUENTIAL") call abort
+
+! Inquire on filename, open file with DIRECT and UNFORMATTED
+inquire(file=fname, direct=drct, opened=opn, access=acc, UNFORMATTED=frmt)
+if (drct.ne."NO" .and. .not.opn .and. acc.ne."SEQUENTIAL") call abort
+if (frmt.ne."NO") call abort
+close(19)
+
+! Inquire on filename, closed file with DIRECT and UNFORMATTED
+inquire(file=fname, direct=drct, opened=opn, access=acc, unformatted=frmt)
+if (drct.ne."UNKNOWN" .and. opn .and. acc.ne."UNDEFINED") call abort
+if (frmt.ne."UNKNOWN") call abort
+
+open(unit=19,file=fname,status='replace',err=170,form="unformatted")
+
+inquire(unit=19, direct=drct, opened=opn, access=acc,unformatted=frmt)
+if (drct.ne."NO" .and. .not.opn .and. acc.ne."SEQUENTIAL") call abort
+if (frmt.ne."YES") call abort
+close(19)
+
+open(unit=19,file=fname,status='replace',err=170)
+
+inquire(unit=19, direct=drct, opened=opn, access=acc)
+if (drct.ne."NO" .and. .not.opn .and. acc.ne."SEQUENTIAL") call abort
+close(19)
+
+open(unit=19,file=fname,status='replace',err=170,access='SEQUENTIAL')
+
+inquire(unit=19, direct=drct, opened=opn, access=acc)
+if (drct.ne."NO" .and. .not.opn .and. acc.ne."SEQUENTIAL") call abort
+
+! Inquire on filename, open file with SEQUENTIAL
+inquire(file=fname, SEQUENTIAL=seqn, opened=opn, access=acc)
+if (seqn.ne."YES" .and. .not.opn .and. acc.ne."DIRECT") call abort
+close(19)
+
+! Inquire on filename, closed file with SEQUENTIAL
+inquire(file=fname, SEQUENTIAL=seqn, opened=opn, access=acc)
+if (seqn.ne."UNKNOWN" .and. opn .and. acc.ne."UNDEFINED") call abort
+
+open(unit=19,file=fname,status='replace',err=170,form='UNFORMATTED',access='DIRECT',recl=72)
+
+inquire(unit=19, direct=drct, opened=opn, access=acc)
+if (drct.ne."YES" .and. .not.opn .and. acc.ne."DIRECT") call abort
+
+! Inquire on filename, open file with DIRECT
+inquire(file=fname, direct=drct, opened=opn, access=acc)
+if (drct.ne."YES" .and. .not.opn .and. acc.ne."DIRECT") call abort
+close(19, status="delete")
+
+! Inquire on filename, closed file with DIRECT
+inquire(file=fname, direct=drct, opened=opn, access=acc)
+if (drct.ne."UNKNOWN" .and. opn .and. acc.ne."UNDEFINED") call abort
+stop
+
+170 write(*,*) "ERROR: unable to open testdirect.f"
+end