re PR fortran/52251 (Nonadvancing I/O and the t edit descriptor)
2015-11-22 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/52251 * io/transfer.c (formatted_transfer_scalar_write): Reset skips count. (finalize_transfer): For ADVANCE_NO, emit pending spaces and reset the skip count. 2015-11-22 Jerry DeLisle <jvdelisle@gcc.gnu.org> * gfortran.dg/fmt_t_8.f90: New test. From-SVN: r230734
This commit is contained in:
parent
b9eaa775ca
commit
6e9966e830
4 changed files with 28 additions and 0 deletions
|
@ -1,3 +1,7 @@
|
|||
2015-11-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||
|
||||
* gfortran.dg/fmt_t_8.f90: New test.
|
||||
|
||||
2015-11-23 Kugan Vivekanandarajah <kuganv@linaro.org>
|
||||
|
||||
PR target/68390
|
||||
|
|
6
gcc/testsuite/gfortran.dg/fmt_t_8.f90
Normal file
6
gcc/testsuite/gfortran.dg/fmt_t_8.f90
Normal file
|
@ -0,0 +1,6 @@
|
|||
! { dg-do run }
|
||||
! PR52251 Tabs with advance = 'no'
|
||||
write( *, '( t25 )', advance = 'no' )
|
||||
write( *, '( "hello" )' ) ! { dg-output " hello(\n|\r\n|\r)" }
|
||||
end
|
||||
|
|
@ -1,3 +1,10 @@
|
|||
2015-11-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||
|
||||
PR libfortran/52251
|
||||
* io/transfer.c (formatted_transfer_scalar_write): Reset skips count.
|
||||
(finalize_transfer): For ADVANCE_NO, emit pending spaces and reset the
|
||||
skip count.
|
||||
|
||||
2015-11-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||
|
||||
* io/write_float.def (output_float): Move block determining
|
||||
|
|
|
@ -1641,6 +1641,7 @@ formatted_transfer_scalar_write (st_parameter_dt *dtp, bt type, void *p, int kin
|
|||
- dtp->u.p.current_unit->bytes_left);
|
||||
dtp->u.p.max_pos =
|
||||
dtp->u.p.max_pos > tmp ? dtp->u.p.max_pos : tmp;
|
||||
dtp->u.p.skips = 0;
|
||||
}
|
||||
if (dtp->u.p.skips < 0)
|
||||
{
|
||||
|
@ -3600,6 +3601,16 @@ finalize_transfer (st_parameter_dt *dtp)
|
|||
next I/O operation if needed. */
|
||||
if (dtp->u.p.advance_status == ADVANCE_NO)
|
||||
{
|
||||
if (dtp->u.p.skips > 0)
|
||||
{
|
||||
int tmp;
|
||||
write_x (dtp, dtp->u.p.skips, dtp->u.p.pending_spaces);
|
||||
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;
|
||||
dtp->u.p.skips = 0;
|
||||
}
|
||||
int bytes_written = (int) (dtp->u.p.current_unit->recl
|
||||
- dtp->u.p.current_unit->bytes_left);
|
||||
dtp->u.p.current_unit->saved_pos =
|
||||
|
|
Loading…
Add table
Reference in a new issue