Commit 163b0163 by Jerry DeLisle

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
parent e32883d1
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
* gfortran.dg/fmt_zero_digits.f90: Revise test.
! { 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
! { 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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment