re PR libfortran/34974 (null bytes when reverse-tabbing long records (regression vs. g77))
2008-02-20 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/34974 * gfortran.dg/fmt_t_7.f: New test. PR libfortran/35132 * gfortran.dg/streamio_15.f90: New test. From-SVN: r132513
This commit is contained in:
parent
e32883d1a2
commit
163b0163e6
|
@ -1,3 +1,11 @@
|
|||
2008-02-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||
|
||||
PR libfortran/34974
|
||||
* gfortran.dg/fmt_t_7.f: New test.
|
||||
|
||||
PR libfortran/35132
|
||||
* gfortran.dg/streamio_15.f90: New test.
|
||||
|
||||
2008-02-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||
|
||||
PR libfortran/35036
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
! { dg-do run }
|
||||
! PR34974 null bytes when reverse-tabbing long records
|
||||
! Test case prpared by Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||
program test
|
||||
character(1) :: a, b, c
|
||||
write (10,'(t50000,a,t1,a)') 'b', 'a'
|
||||
close (10)
|
||||
open (10, access="stream")
|
||||
read (10, pos=1) a
|
||||
read (10, pos=50000) b
|
||||
read (10, pos=25474) c
|
||||
close (10, status="delete")
|
||||
if (a /= "a") call abort
|
||||
if (b /= "b") call abort
|
||||
if (c /= " ") call abort
|
||||
end
|
|
@ -0,0 +1,37 @@
|
|||
! { dg-do run }
|
||||
! PR35132 Formatted stream I/O write should truncate.
|
||||
! Test case adapted from PR by Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||
program main
|
||||
implicit none
|
||||
character(len=6) :: c
|
||||
integer :: i
|
||||
open(20,file="foo.txt",form="formatted",access="stream")
|
||||
write(20,'(A)') '123456'
|
||||
write(20,'(A)') 'abcdef'
|
||||
write(20,'(A)') 'qwerty'
|
||||
rewind 20
|
||||
! Skip over the first line
|
||||
read(20,'(A)') c
|
||||
if (c.ne.'123456') call abort
|
||||
! Save the position
|
||||
inquire(20,pos=i)
|
||||
if (i.ne.8) call abort
|
||||
! Read in the complete line...
|
||||
read(20,'(A)') c
|
||||
if (c.ne.'abcdef') call abort
|
||||
! Write out the first four characters
|
||||
write(20,'(A)',pos=i,advance="no") 'ASDF'
|
||||
! Fill up the rest of the line. Here, we know the length. If we
|
||||
! don't, things will be a bit more complicated.
|
||||
write(20,'(A)') c(5:6)
|
||||
! Copy the file to standard output
|
||||
rewind 20
|
||||
c = ""
|
||||
read(20,'(A)') c
|
||||
if (c.ne.'123456') call abort
|
||||
read(20,'(A)') c
|
||||
if (c.ne.'ASDFef') call abort
|
||||
read(20,'(A)', iostat=i) c
|
||||
if (i /= -1) call abort
|
||||
close (20, status="delete")
|
||||
end program main
|
Loading…
Reference in New Issue