aboutsummaryrefslogtreecommitdiff
path: root/libgfortran/io
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2006-03-18 01:56:07 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2006-03-18 01:56:07 +0000
commit54f9e2781e026570ce63e3f0689bb7a7c1ab79a6 (patch)
tree8248c3daa123616f0ef35a71869afdad2a98fd78 /libgfortran/io
parent8e0524013a9f474b8f766dc38c157efa1085d325 (diff)
downloadgcc-54f9e2781e026570ce63e3f0689bb7a7c1ab79a6.zip
gcc-54f9e2781e026570ce63e3f0689bb7a7c1ab79a6.tar.gz
gcc-54f9e2781e026570ce63e3f0689bb7a7c1ab79a6.tar.bz2
re PR fortran/26509 (incorrect behaviour of error-handler for direct access write)
2006-03-17 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libgfortran/26509 * libgfortran.h: Add ERROR_DIRECT_EOR. * runtime/error.c (translate_error): Add translation for new error. * io/transfer.c (write_buf): Add check for EOR when mode is direct access. From-SVN: r112198
Diffstat (limited to 'libgfortran/io')
-rw-r--r--libgfortran/io/transfer.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c
index 8c43efc..4626d46 100644
--- a/libgfortran/io/transfer.c
+++ b/libgfortran/io/transfer.c
@@ -384,7 +384,10 @@ write_buf (st_parameter_dt *dtp, void *buf, size_t nbytes)
{
if (dtp->u.p.current_unit->bytes_left < nbytes)
{
- generate_error (&dtp->common, ERROR_EOR, NULL);
+ if (dtp->u.p.current_unit->flags.access == ACCESS_DIRECT)
+ generate_error (&dtp->common, ERROR_DIRECT_EOR, NULL);
+ else
+ generate_error (&dtp->common, ERROR_EOR, NULL);
return FAILURE;
}