------- Comment #3 from jvdelisle at gcc dot gnu dot org  2010-07-20 04:35 
-------
Kai, would you test this for me please.

Index: ftell_3.f90
===================================================================
--- ftell_3.f90 (revision 162291)
+++ ftell_3.f90 (working copy)
@@ -3,9 +3,10 @@
 ! 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'
@@ -13,16 +14,29 @@
   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()
+  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
-  close(10)
+  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


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44697

Reply via email to