summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/append_1.f90
blob: 8b81bc38484de3fe92405913fe6cddf04dda94d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
! PR libfortran/21471
! Testing POSITION="APPEND"
!
! { dg-do run }
      subroutine failed
        close (10,status='delete')
        call abort
      end subroutine failed

      integer,parameter :: n = 13
      integer :: i, j, error

      open (10, file='foo')
      close (10)

      do i = 1, n
        open (10, file='foo',position='append')
        write (10,*) i
        close (10)
      end do

      open (10,file='foo',status='old')
      error = 0
      i = -1
      do while (error == 0)
        i = i + 1
        read (10,*,iostat=error) j
        if (error == 0) then
          if (i + 1 /= j) call failed
        end if
        if (i > n + 1) call failed
      end do
      if (i /= n) call failed
      close (10,status='delete')
      end