OSDN Git Service

PR target/35944
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gfortran.dg / backspace_9.f
1 ! { dg-do run { target fd_truncate } }
2 ! PR32235 incorrectly position text file after backspace
3 ! Test case from PR, prepared by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4       program main
5       character*10 a
6       ncards=2
7       input=10
8       write(10,"(a)") "One"
9       write(10,"(a)") "Two"
10       write(10,"(a)") "Three"
11       rewind(10)
12       read(input,1000)a
13       read(input,1000)a
14
15       call inlist(ncards)
16
17       read(input,1000)a
18       if (a.ne."Three") call abort
19       close(10,status="delete")
20       stop
21  1000 format(a10)
22  2000 format('read =',a10)
23       end
24
25       subroutine inlist(ncards)
26       character*4 data(20)
27       input=10
28 c
29       if (ncards.eq.0) go to 20
30       do 15 i=1,ncards
31       backspace input
32    15 continue
33 c
34    20 continue
35       kard  = 0
36    30 read(input,1000,end=60)   data
37    40 kard=kard + 1
38    50 continue
39       if ((kard .eq. 1) .and. (DATA(1) .ne. "One")) call abort
40       if ((kard .eq. 2) .and. (DATA(1) .ne. "Two")) call abort
41       if ((kard .eq. 3) .and. (DATA(1) .ne. "Thre")) call abort
42
43       go to 30
44    60 continue
45       kard=kard - ncards + 1
46       do 70   i=1,kard
47       backspace input
48    70 continue
49 c
50       return
51 c
52  1000 format (20a4)
53  2020 format (8x,i15,8x,20a4)
54 c
55       end