From dc04311d573ff9f15239325ba7f4e720cb91f2d5 Mon Sep 17 00:00:00 2001 From: jb <jb@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Sat, 26 Nov 2005 09:12:36 +0000 Subject: [PATCH] libgfortran ChangeLog: 2005-11-26 Janne Blomqvist <jb@gcc.gnu.org> PR libgfortran/24945 * io/open.c (edit_modes): Check for STATUS_UNKNOWN flag. testsuite ChangeLog 2005-11-26 Janne Blomqvist <jb@gcc.gnu.org> PR libgfortran/24945 * gfortran.dg/open_status_2.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107538 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gfortran.dg/open_status_2.f90 | 12 ++++++++++++ libgfortran/ChangeLog | 5 +++++ libgfortran/io/open.c | 5 +++-- 4 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/gfortran.dg/open_status_2.f90 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 99342b2e8716..4f73095150e6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-11-26 Janne Blomqvist <jb@gcc.gnu.org> + + PR libgfortran/24945 + * gfortran.dg/open_status_2.f90: New test. + 2005-11-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * gcc.c-torture/execute/builtins/fprintf.c, diff --git a/gcc/testsuite/gfortran.dg/open_status_2.f90 b/gcc/testsuite/gfortran.dg/open_status_2.f90 new file mode 100644 index 000000000000..8b4b5776c7fe --- /dev/null +++ b/gcc/testsuite/gfortran.dg/open_status_2.f90 @@ -0,0 +1,12 @@ +! { dg-do run } +! PR 25036 +! Test reopening file without status specifier or with +! status='unknown'. The standard says that these two must behave +! identically, but the actual behaviour is processor dependent. +program open_status_2 + open(10, file="f", form='unformatted', status='unknown') + open(10, file="f", form='unformatted', status='unknown') + open(10, file="f", form='unformatted') + close(10, status='delete') +end program open_status_2 + diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index a637ee475362..03629e24f88a 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,8 @@ +2005-11-26 Janne Blomqvist <jb@gcc.gnu.org> + + PR libgfortran/24945 + * io/open.c (edit_modes): Check for STATUS_UNKNOWN flag. + 2005-11-25 Richard Henderson <rth@redhat.com> * io/list_read.c (nml_parse_qualifier): Use memcpy to extract diff --git a/libgfortran/io/open.c b/libgfortran/io/open.c index 54595097049b..7e42cc6a2c84 100644 --- a/libgfortran/io/open.c +++ b/libgfortran/io/open.c @@ -144,9 +144,10 @@ edit_modes (st_parameter_open *opp, gfc_unit * u, unit_flags * flags) /* Status must be OLD if present. */ - if (flags->status != STATUS_UNSPECIFIED && flags->status != STATUS_OLD) + if (flags->status != STATUS_UNSPECIFIED && flags->status != STATUS_OLD && + flags->status != STATUS_UNKNOWN) generate_error (&opp->common, ERROR_BAD_OPTION, - "OPEN statement must have a STATUS of OLD"); + "OPEN statement must have a STATUS of OLD or UNKNOWN"); if (u->flags.form == FORM_UNFORMATTED) { -- GitLab