diff options
author | Thomas Koenig <Thomas.Koenig@online.de> | 2005-08-29 20:40:02 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2005-08-29 20:40:02 +0000 |
commit | 827afb86298f15371c3d1b3c42fa851470d286f0 (patch) | |
tree | bc29b9e028673558a3d81e84dae7800d4cf5877a | |
parent | 57247f4b28a219a5dc3159a3bb11bd4785c0409d (diff) | |
download | gcc-827afb86298f15371c3d1b3c42fa851470d286f0.zip gcc-827afb86298f15371c3d1b3c42fa851470d286f0.tar.gz gcc-827afb86298f15371c3d1b3c42fa851470d286f0.tar.bz2 |
[multiple changes]
2005-08-29 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/23598
* io/lock.c(library_start): If ioparm.iostat is present, clear
it unconditionally.
2005-02-29 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/23598
* gfortran.dg/iostat_1.f90: New test.
From-SVN: r103613
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/iostat_1.f90 | 14 | ||||
-rw-r--r-- | libgfortran/ChangeLog | 6 | ||||
-rw-r--r-- | libgfortran/io/lock.c | 2 |
4 files changed, 26 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5244e71..fa4675b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-02-29 Thomas Koenig <Thomas.Koenig@online.de> + + PR libfortran/23598 + * gfortran.dg/iostat_1.f90: New test. + 2005-08-28 Andrew Pinski <pinskia@physics.uc.edu> PR middle-end/23408 diff --git a/gcc/testsuite/gfortran.dg/iostat_1.f90 b/gcc/testsuite/gfortran.dg/iostat_1.f90 new file mode 100644 index 0000000..79bc001 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/iostat_1.f90 @@ -0,0 +1,14 @@ +! { dg-do run } +! PR 23598 - The iostat variable wasn't reset if the previous +! I/O library call had an error. +program main + implicit none + integer :: ios, i + open (10, pad='no', status='scratch') + write (10, '(A)') '1','1' + rewind (10) + read (10,'(I2)',iostat=ios) i + ios = -4321 + read (10, '(I1)', iostat=ios) i + if (ios /= 0) call abort +end program main diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index e76f9e5..98ae306 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,9 @@ +2005-08-29 Thomas Koenig <Thomas.Koenig@online.de> + + PR libfortran/23598 + * io/lock.c(library_start): If ioparm.iostat is present, clear + it unconditionally. + 2005-08-27 Francois-Xavier Coudert <coudert@clipper.ens.fr> * acinclude.m4 (LIBGFOR_CHECK_UNLINK_OPEN_FILE): Add check to see diff --git a/libgfortran/io/lock.c b/libgfortran/io/lock.c index 9541fc5..7dc08e1 100644 --- a/libgfortran/io/lock.c +++ b/libgfortran/io/lock.c @@ -54,7 +54,7 @@ library_start (void) stay within the library. */ g.in_library = 1; - if (ioparm.iostat != NULL && ioparm.library_return == LIBRARY_OK) + if (ioparm.iostat != NULL) *ioparm.iostat = ERROR_OK; ioparm.library_return = LIBRARY_OK; |