re PR libfortran/21471 ('POSITION = "APPEND"' doesn't seem to work)
PR libfortran/21471 * open.c (new_unit): Take care of the case where POSITION_APPEND is specified (sseek to the end, and set u>-endfile). * gfortran.dg/append-1.f90: New test. From-SVN: r99560
This commit is contained in:
parent
939176ab43
commit
da32fddcb6
|
@ -1,3 +1,8 @@
|
||||||
|
2005-05-10 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
||||||
|
|
||||||
|
PR libfortran/21471
|
||||||
|
* gfortran.dg/append-1.f90: New test.
|
||||||
|
|
||||||
2005-05-10 Diego Novillo <dnovillo@redhat.com>
|
2005-05-10 Diego Novillo <dnovillo@redhat.com>
|
||||||
|
|
||||||
* gcc.dg/pr18501.c: XFAIL.
|
* gcc.dg/pr18501.c: XFAIL.
|
||||||
|
|
|
@ -0,0 +1,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
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
2005-05-10 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
||||||
|
|
||||||
|
PR libfortran/21471
|
||||||
|
* open.c (new_unit): Take care of the case where POSITION_APPEND
|
||||||
|
is specified (sseek to the end, and set u>-endfile).
|
||||||
|
|
||||||
2005-05-10 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
2005-05-10 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
||||||
|
|
||||||
PR fortran/20178
|
PR fortran/20178
|
||||||
|
|
|
@ -356,6 +356,13 @@ new_unit (unit_flags * flags)
|
||||||
u->s = s;
|
u->s = s;
|
||||||
u->flags = *flags;
|
u->flags = *flags;
|
||||||
|
|
||||||
|
if (flags->position == POSITION_APPEND)
|
||||||
|
{
|
||||||
|
if (sseek (u->s, file_length (u->s)) == FAILURE)
|
||||||
|
generate_error (ERROR_OS, NULL);
|
||||||
|
u->endfile = AT_ENDFILE;
|
||||||
|
}
|
||||||
|
|
||||||
/* Unspecified recl ends up with a processor dependent value. */
|
/* Unspecified recl ends up with a processor dependent value. */
|
||||||
|
|
||||||
u->recl = (ioparm.recl_in != 0) ? ioparm.recl_in : g.max_offset;
|
u->recl = (ioparm.recl_in != 0) ? ioparm.recl_in : g.max_offset;
|
||||||
|
|
Loading…
Reference in New Issue