summaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>2008-01-18 22:19:15 +0000
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>2008-01-18 22:19:15 +0000
commit9ed4a2e730e6b187ea7e0e73919495c2aea83f82 (patch)
treeadc17376a79e9e8f8f0b079a3c49d0e77aa8cfbd /libgfortran
parent42ffbc56203d144e61e5106fc9a90bb571773b02 (diff)
downloadgcc-9ed4a2e730e6b187ea7e0e73919495c2aea83f82.tar.gz
2008-01-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
* io/transfer.c (formatted_transfer_scalar): Set max_pos to the greater of the current max_pos or the newly calculated position. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@131640 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran')
-rw-r--r--libgfortran/ChangeLog5
-rw-r--r--libgfortran/io/transfer.c7
2 files changed, 10 insertions, 2 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 3a81decfc8e..25e239a6cff 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,8 @@
+2008-01-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ * io/transfer.c (formatted_transfer_scalar): Set max_pos to the greater
+ of the current max_pos or the newly calculated position.
+
2008-01-18 Tobias Burnus <burnus@net-b.de>
* io/write.c (write_real): Increase default precision
diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c
index 9b9e28ef3b7..da3e3f2000c 100644
--- a/libgfortran/io/transfer.c
+++ b/libgfortran/io/transfer.c
@@ -948,9 +948,12 @@ formatted_transfer_scalar (st_parameter_dt *dtp, bt type, void *p, int len,
{
if (dtp->u.p.skips > 0)
{
+ int tmp;
write_x (dtp, dtp->u.p.skips, dtp->u.p.pending_spaces);
- dtp->u.p.max_pos = (int)(dtp->u.p.current_unit->recl
- - dtp->u.p.current_unit->bytes_left);
+ tmp = (int)(dtp->u.p.current_unit->recl
+ - dtp->u.p.current_unit->bytes_left);
+ dtp->u.p.max_pos =
+ dtp->u.p.max_pos > tmp ? dtp->u.p.max_pos : tmp;
}
if (dtp->u.p.skips < 0)
{