From 82498ed4b96badc4fc2ccd9889657b628320877c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois-Xavier=20Coudert?= <fxcoudert@gcc.gnu.org> Date: Tue, 29 Mar 2005 08:37:32 +0000 Subject: [PATCH] re PR libfortran/20163 ([4.0 only] gfortran - error opening direct access file) PR libfortran/20163 * io/open.c (st_open): call library_end() before returning even if an error arises. * gfortran.dg/pr20163-2.f: New test. From-SVN: r97153 --- gcc/testsuite/ChangeLog | 10 +++++----- gcc/testsuite/gfortran.dg/pr20163-2.f | 5 +++++ libgfortran/ChangeLog | 7 +++++++ libgfortran/io/open.c | 3 +++ 4 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 gcc/testsuite/gfortran.dg/pr20163-2.f diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 81ab1deb1fb4..73aa6eb1e100 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,14 +1,14 @@ +2005-03-28 Steve Ellcey <sje@cup.hp.com> + + PR target/19890 + * gcc.dg/20020219-1.c: Skip on IA64 HP-UX in ILP32 mode. + 2005-03-29 Dale Ranta <dir@lanl.gov> Francois-Xavier Coudert <coudert@clipper.ens.fr> PR libfortran/20163 * gfortran.dg/pr20163-2.f: New test. -2005-03-28 Steve Ellcey <sje@cup.hp.com> - - PR target/19890 - * gcc.dg/20020219-1.c: Skip on IA64 HP-UX in ILP32 mode. - 2005-03-28 Jan Hubicka <jh@suse.cz> PR middle-end/20635 diff --git a/gcc/testsuite/gfortran.dg/pr20163-2.f b/gcc/testsuite/gfortran.dg/pr20163-2.f new file mode 100644 index 000000000000..c0b2573ed93a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr20163-2.f @@ -0,0 +1,5 @@ + open(10,status="foo",err=100) + call abort + 100 continue + open(10,status="scratch") + end diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 32b5454827bf..edc23af6ce93 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,10 @@ +2005-03-29 Dale Ranta <dir@lanl.gov> + Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR libfortran/20163 + * io/open.c (st_open): call library_end() before returning even if + an error arises. + 2005-03-25 Francois-Xavier Coudert <coudert@clipper.ens.fr> PR libfortran/19678 diff --git a/libgfortran/io/open.c b/libgfortran/io/open.c index 3d0e5bebe7af..82a862b7c47a 100644 --- a/libgfortran/io/open.c +++ b/libgfortran/io/open.c @@ -481,7 +481,10 @@ st_open (void) flags.position = POSITION_ASIS; if (ioparm.library_return != LIBRARY_OK) + { + library_end (); return; + } u = find_unit (ioparm.unit); -- GitLab