From 21905d1b4319b962f26f87d57e8fa4f00f0aeedb Mon Sep 17 00:00:00 2001 From: Janne Blomqvist Date: Fri, 30 Sep 2005 21:47:54 +0300 Subject: [PATCH] re PR libfortran/24112 (Reopening file with STATUS='OLD' doesn't work) 2005-09-30 Janne Blomqvist libgfortran/ PR 24112 * io/open.c (edit_modes): Check for correct flag. gcc/testsuite/ PR 24112 * gfortran.dg/open_status_1.f90: New. From-SVN: r104829 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gfortran.dg/open_status_1.f90 | 8 ++++++++ libgfortran/ChangeLog | 5 +++++ libgfortran/io/open.c | 2 +- 4 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gfortran.dg/open_status_1.f90 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 97ac0baeb15..65f59579100 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-09-30 Janne Blomqvist + + PR 24112 + * gfortran.dg/open_status_1.f90: New. + 2005-09-30 Uros Bizjak * gcc.dg/vect/fast-math-vect-reduc-7.c: Clean up temp files. diff --git a/gcc/testsuite/gfortran.dg/open_status_1.f90 b/gcc/testsuite/gfortran.dg/open_status_1.f90 new file mode 100644 index 00000000000..df44a4461a8 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/open_status_1.f90 @@ -0,0 +1,8 @@ +! { dg-do run } +! Test reopening with io status='old' +program iostatus + open (1, file='foo', status='replace') ! Make sure file exists. + open (1, file='foo', status='old') + open (1, file='foo', status='old') + close (1, status='delete') +end program iostatus diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index fa76b5ef039..07b2e913c7c 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,8 @@ +2005-09-30 Janne Blomqvist + + PR 24112 + * io/open.c (edit_modes): Check for correct flag. + 2005-09-29 Jakub Jelinek * runtime/string.c (find_option): Change 3rd argument to diff --git a/libgfortran/io/open.c b/libgfortran/io/open.c index 82d5a355e0d..e1e42ad9370 100644 --- a/libgfortran/io/open.c +++ b/libgfortran/io/open.c @@ -120,7 +120,7 @@ edit_modes (gfc_unit * u, unit_flags * flags) /* Complain about attempts to change the unchangeable. */ if (flags->status != STATUS_UNSPECIFIED && - u->flags.status != flags->position) + u->flags.status != flags->status) generate_error (ERROR_BAD_OPTION, "Cannot change STATUS parameter in OPEN statement");