2 ! PR43265 Followup patch for miscellaneous EOF conditions.
3 ! Eaxamples from Tobius Burnus
5 character(len
=2) :: str
, str2(2)
6 integer :: a
, b
, c
, ios
10 open(99,file
='test.dat',access
='stream',form
='unformatted', status
='replace')
14 open(99,file
='test.dat')
16 close(99, status
="delete")
17 if (i
/= 0) call abort
19 read(str(1:0), '(T7,i1)') i
20 if (i
/= 0) call abort
22 read(str
,'(i2,/,i2)',end=111) a
, b
23 call abort
!stop 'ERROR: Expected EOF error (1)'
26 read(str2
,'(i2,/,i2)',end=112) a
, b
28 read(str2
,'(i2,/,i2,/,i2)',end=113) a
, b
, c
29 call abort
!stop 'ERROR: Expected EOF error (2)'
31 112 call abort
!stop 'ERROR: Unexpected EOF (3)'
34 read(str
,'(i2,/,i2)',end=121,pad
='no') a
, b
35 call abort
!stop 'ERROR: Expected EOF error (1)'
38 read(str2(:),'(i2,/,i2)', end=122, pad
='no') a
, b
40 122 call abort
!stop 'ERROR: Expected no EOF error (2)'
43 read(str2(:),'(i2,/,i2,/,i2)',end=123,pad
='no') a
, b
, c
44 call abort
!stop 'ERROR: Expected EOF error (3)'
47 read(str(2:1),'(i2,/,i2)',end=131, pad
='no') a
, b
48 call abort
!stop 'ERROR: Expected EOF error (1)'
51 read(str2(:)(2:1),'(i2,/,i2)',end=132, pad
='no') a
, b
52 call abort
!stop 'ERROR: Expected EOF error (2)'
55 read(str2(:)(2:1),'(i2,/,i2,/,i2)',end=133,pad
='no') a
, b
, c
56 call abort
!stop 'ERROR: Expected EOF error (3)'
59 read(str(2:1),'(i2,/,i2)',iostat
=ios
, pad
='no') a
, b
60 if (ios
/= IOSTAT_END
) call abort
!stop 'ERROR: expected iostat /= 0 (1)'
62 read(str2(:)(2:1),'(i2,/,i2)',iostat
=ios
, pad
='no') a
, b
63 if (ios
/= IOSTAT_END
) call abort
!stop 'ERROR: expected iostat /= 0 (2)'
65 read(str2(:)(2:1),'(i2,/,i2,/,i2)',iostat
=ios
,pad
='no') a
, b
, c
66 if (ios
/= IOSTAT_END
) call abort
!stop 'ERROR: expected iostat /= 0 (2)'