blob: ce93f5400538c300c527e9e2642d39a3d2110133 [file] [log] [blame]
! { dg-do run }
! { dg-options "-std=legacy" }
!
! PR32235 incorrectly position text file after backspace
! Test case from PR, prepared by Jerry DeLisle <jvdelisle@gcc.gnu.org>
program main
character*10 a
ncards=2
input=10
write(10,"(a)") "One"
write(10,"(a)") "Two"
write(10,"(a)") "Three"
rewind(10)
read(input,1000)a
read(input,1000)a
call inlist(ncards)
read(input,1000)a
if (a.ne."Three") STOP 1
close(10,status="delete")
stop
1000 format(a10)
2000 format('read =',a10)
end
subroutine inlist(ncards)
character*4 data(20)
input=10
c
if (ncards.eq.0) go to 20
do 15 i=1,ncards
backspace input
15 continue
c
20 continue
kard = 0
30 read(input,1000,end=60) data
40 kard=kard + 1
50 continue
if ((kard .eq. 1) .and. (DATA(1) .ne. "One")) STOP 2
if ((kard .eq. 2) .and. (DATA(1) .ne. "Two")) STOP 3
if ((kard .eq. 3) .and. (DATA(1) .ne. "Thre")) STOP 4
go to 30
60 continue
kard=kard - ncards + 1
do 70 i=1,kard
backspace input
70 continue
c
return
c
1000 format (20a4)
2020 format (8x,i15,8x,20a4)
c
end