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