+2010-07-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/44697
+ * gfortran.dg/ftell_3.f90: Take care of cr-lf record endings.
+
2010-07-20 Jeffrey Yasskin <jyasskin@google.com>
* lib/scanasm.exp (dg-function-on-line): Test that a function is
! Contributed by Janne Blomqvist, Manfred Schwarb
! and Dominique d'Humieres.
program ftell_3
- integer :: i
+ integer :: i, j
+ character(1) :: ch
character(len=99) :: buffer
- open(10, form='formatted', status='scratch', position='rewind')
+ open(10, form='formatted', position='rewind')
write(10, '(a)') '123456'
write(10, '(a)') '789'
write(10, '(a)') 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'
rewind(10)
read(10, '(a)') buffer
call ftell(10, i)
- if(i /= 7) then
- call abort()
+! Expected: On '\n' systems: 7, on \r\n systems: 8
+ if(i /= 7 .and. i /= 8) then
+ call abort
end if
read(10,'(a)') buffer
if (trim(buffer) /= "789") then
call abort()
end if
- call ftell(10,i)
- if (i /= 11) then
- call abort()
- end if
+ call ftell(10,j)
close(10)
+ open(10, access="stream")
+! Expected: On '\n' systems: 11, on \r\n systems: 13
+ if (i == 7) then
+ read(10, pos=7) ch
+ if (ch /= char(10)) call abort
+ if (j /= 11) call abort
+ end if
+ if (i == 8) then
+ read(10, pos=7) ch
+ if (ch /= char(13)) call abort
+ read(10) ch
+ if (ch /= char(10)) call abort
+ if (j /= 13) call abort
+ end if
+ close(10, status="delete")
end program ftell_3