libgfortran: Fix unwanted end-of-record by checking if seen_dollar.
libgfortran/ChangeLog: PR libfortran/98825 * io/transfer.c (next_record_w): Insert check for seen_dollar and if so, skip issueing next record. gcc/testsuite/ChangeLog: PR libfortran/98825 * gfortran.dg/dollar_edit_descriptor_4.f: New test.
This commit is contained in:
parent
27a804bc62
commit
19c0232410
16
gcc/testsuite/gfortran.dg/dollar_edit_descriptor_4.f
Normal file
16
gcc/testsuite/gfortran.dg/dollar_edit_descriptor_4.f
Normal file
@ -0,0 +1,16 @@
|
||||
! { dg-do run }
|
||||
! { dg-options "-std=gnu" }
|
||||
! PR98825 Test for fix of '$' edit descriptor.
|
||||
character(30) :: line
|
||||
10 format (i3,$)
|
||||
|
||||
open(10, status='scratch')
|
||||
write (10,10) 1
|
||||
write (10,10) 2,3,4,5
|
||||
! Check the result.
|
||||
line = 'abcdefg'
|
||||
rewind(10)
|
||||
read(10, '(a)') line
|
||||
close(10)
|
||||
if (line .ne. ' 1 2 3 4 5') call abort
|
||||
end
|
@ -4020,6 +4020,8 @@ next_record_w (st_parameter_dt *dtp, int done)
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (dtp->u.p.seen_dollar == 1)
|
||||
break;
|
||||
/* Handle legacy CARRIAGECONTROL line endings. */
|
||||
else if (dtp->u.p.current_unit->flags.cc == CC_FORTRAN)
|
||||
next_record_cc (dtp);
|
||||
|
Loading…
Reference in New Issue
Block a user