diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/inquire_5.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/inquire_5.f90 | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/inquire_5.f90 b/gcc/testsuite/gfortran.dg/inquire_5.f90 new file mode 100644 index 000000000..fe107a198 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/inquire_5.f90 @@ -0,0 +1,39 @@ +! { dg-do run { target fd_truncate } } +! { dg-options "-std=legacy" } +! +! pr19314 inquire(..position=..) segfaults +! test by Thomas.Koenig@online.de +! bdavis9659@comcast.net + implicit none + character*20 chr + open(7,STATUS='SCRATCH') + inquire(7,position=chr) + if (chr.NE.'ASIS') CALL ABORT + close(7) + open(7,STATUS='SCRATCH',ACCESS='DIRECT',RECL=100) + inquire(7,position=chr) + if (chr.NE.'UNDEFINED') CALL ABORT + close(7) + open(7,STATUS='SCRATCH',POSITION='REWIND') + inquire(7,position=chr) + if (chr.NE.'REWIND') CALL ABORT + close(7) + open(7,STATUS='SCRATCH',POSITION='ASIS') + inquire(7,position=chr) + if (chr.NE.'ASIS') CALL ABORT + close(7) + open(7,STATUS='SCRATCH',POSITION='APPEND') + inquire(7,position=chr) + if (chr.NE.'APPEND') CALL ABORT + close(7) + open(7,STATUS='SCRATCH',POSITION='REWIND') + write(7,*)'this is a record written to the file' + write(7,*)'this is another record' + backspace(7) + inquire(7,position=chr) + if (chr.NE.'ASIS') CALL ABORT + rewind(7) + inquire(7,position=chr) + if (chr.NE.'REWIND') CALL ABORT + close(7) + end |