1! { dg-do run } 2! PR43265 Followup patch for miscellaneous EOF conditions. 3! Eaxamples from Tobius Burnus 4 use iso_fortran_env 5 character(len=2) :: str, str2(2) 6 integer :: a, b, c, ios 7 str = '' 8 str2 = '' 9 10 open(99,file='test.dat',access='stream',form='unformatted', status='replace') 11 write(99) ' ' 12 close(99) 13 14 open(99,file='test.dat') 15 read(99, '(T7,i2)') i 16 close(99, status="delete") 17 if (i /= 0) call abort 18 19 read(str(1:0), '(T7,i1)') i 20 if (i /= 0) call abort 21 22 read(str,'(i2,/,i2)',end=111) a, b 23 call abort !stop 'ERROR: Expected EOF error (1)' 24 111 continue 25 26 read(str2,'(i2,/,i2)',end=112) a, b 27 28 read(str2,'(i2,/,i2,/,i2)',end=113) a, b, c 29 call abort !stop 'ERROR: Expected EOF error (2)' 30 31 112 call abort !stop 'ERROR: Unexpected EOF (3)' 32 33 113 continue 34 read(str,'(i2,/,i2)',end=121,pad='no') a, b 35 call abort !stop 'ERROR: Expected EOF error (1)' 36 121 continue 37 38 read(str2(:),'(i2,/,i2)', end=122, pad='no') a, b 39 goto 125 40 122 call abort !stop 'ERROR: Expected no EOF error (2)' 41 125 continue 42 43 read(str2(:),'(i2,/,i2,/,i2)',end=123,pad='no') a, b, c 44 call abort !stop 'ERROR: Expected EOF error (3)' 45 123 continue 46 47 read(str(2:1),'(i2,/,i2)',end=131, pad='no') a, b 48 call abort !stop 'ERROR: Expected EOF error (1)' 49 131 continue 50 51 read(str2(:)(2:1),'(i2,/,i2)',end=132, pad='no') a, b 52 call abort !stop 'ERROR: Expected EOF error (2)' 53 132 continue 54 55 read(str2(:)(2:1),'(i2,/,i2,/,i2)',end=133,pad='no') a, b, c 56 call abort !stop 'ERROR: Expected EOF error (3)' 57 133 continue 58 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)' 61 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)' 64 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)' 67 68 ! print *, "success" 69 end 70 71 72