re PR fortran/25264 (write to internal unit from the string itself gives wrong result ?)

2005-12-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/25264
	PR libgfortran/25349
	* gfortran.dg/tl_editing.f90: Added additional checks.
	* gfortran.dg/t_editing.f: New test.
	* gfortran.dg/write_padding.f90: New test

From-SVN: r108673
This commit is contained in:
Jerry DeLisle 2005-12-16 19:40:36 +00:00
parent 5535b63f1a
commit 184210e82c
4 changed files with 55 additions and 8 deletions

View File

@ -1,3 +1,11 @@
2005-12-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/25264
PR libgfortran/25349
* gfortran.dg/tl_editing.f90: Added additional checks.
* gfortran.dg/t_editing.f: New test.
* gfortran.dg/write_padding.f90: New test
2005-12-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2005-12-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
PR testsuite/25215 PR testsuite/25215

View File

@ -0,0 +1,8 @@
! { dg-do run }
! PR25349 Check T editing. Test case from PR submitted by Thomas Koenig
! Contributed by Jerry DeLisle <jvdelisle@gcc.gnu.org>
program main
character(len=10) line
write (line,'(1X,A,T1,A)') 'A','B'
if (line.ne.'BA') call abort()
end

View File

@ -3,12 +3,30 @@
! Left tabbing, followed by X or T-tabbing to the right would ! Left tabbing, followed by X or T-tabbing to the right would
! cause spaces to be overwritten on output data. ! cause spaces to be overwritten on output data.
! Contributed by Paul Thomas <pault@gcc.gnu.org> ! Contributed by Paul Thomas <pault@gcc.gnu.org>
program tl_editting ! PR25349 Revised by Jerry DeLisle <jvdelisle@gcc.gnu.org>
character*10 :: line program tl_editting
character*10 :: aline = "abcdefxyij" character*10 :: line, many(5), s
character*2 :: bline = "gh" character*10 :: aline = "abcdefxyij"
character*10 :: cline = "abcdefghij" character*2 :: bline = "gh"
write (line, '(a10,tl6,2x,a2)') aline, bline character*10 :: cline = "abcdefghij"
if (line.ne.cline) call abort ()
end program tl_editting ! Character unit test
write (line, '(a10,tl6,2x,a2)') aline, bline
if (line.ne.cline) call abort ()
! Character array unit test
many = "0123456789"
write(many(1:5:2), '(a10,tl6,2x,a2)') aline, bline, aline, bline, aline,&
&bline
if (many(1).ne.cline) call abort ()
if (many(3).ne.cline) call abort ()
if (many(5).ne.cline) call abort ()
! File unit test
write (10, '(a10,tl6,2x,a2)') aline, bline
rewind(10)
read(10, '(a)') s
if (s.ne.cline) call abort
end program tl_editting

View File

@ -0,0 +1,13 @@
! { dg-do run }
! PR25264 Verify that the internal unit, str, is not cleared
! before it is needed elsewhere. This is an extension.
! Test derived from test case by JPR. Contributed by
! Jerry DeLisle <jvdelisle@verizon.net>.
program write_padding
character(len=10) :: str
real :: atime
str = '123'
write( str, '(a3,i1)' ) trim(str),4
if (str.ne."1234") call abort()
end program write_padding