diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/rewind_1.f90 | 18 |
2 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 18f8037..20b6267 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2004-08-27 Paul Brook <paul@codesourcery.com> + + * gfortran.dg/rewind_1.f90: New test. + 2004-08-27 Bud Davis <bdavis9659@comcast.net> PR fortran/16597 diff --git a/gcc/testsuite/gfortran.dg/rewind_1.f90 b/gcc/testsuite/gfortran.dg/rewind_1.f90 new file mode 100644 index 0000000..cbd2ef1 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/rewind_1.f90 @@ -0,0 +1,18 @@ +! { dg-do run } +! Check that rewind doesn't delete a file. +! Writing to the file truncates it at the end of the current record. Out +! IO library was defering the actual truncation until the file was rewound. +! A second rewind would then (incorrectly) think the file had just been +! written to, and truncate the file to zero length. +program foo + character*11 s + open(unit=11, status="SCRATCH") + write(11, '(a11)') "Hello World" + rewind(11) + rewind(11) + s = "" + read(11, '(a11)') s + close(11) + if (s .ne. "Hello World") call abort +end program + |