diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4031480cac1a..3f14f8334983 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2005-12-16 Jerry DeLisle + + 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 PR testsuite/25215 diff --git a/gcc/testsuite/gfortran.dg/t_editing.f b/gcc/testsuite/gfortran.dg/t_editing.f new file mode 100644 index 000000000000..6121e85845a2 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/t_editing.f @@ -0,0 +1,8 @@ +! { dg-do run } +! PR25349 Check T editing. Test case from PR submitted by Thomas Koenig +! Contributed by Jerry DeLisle + program main + character(len=10) line + write (line,'(1X,A,T1,A)') 'A','B' + if (line.ne.'BA') call abort() + end diff --git a/gcc/testsuite/gfortran.dg/tl_editing.f90 b/gcc/testsuite/gfortran.dg/tl_editing.f90 index 8f9702da6ba9..ea86873a726b 100644 --- a/gcc/testsuite/gfortran.dg/tl_editing.f90 +++ b/gcc/testsuite/gfortran.dg/tl_editing.f90 @@ -3,12 +3,30 @@ ! Left tabbing, followed by X or T-tabbing to the right would ! cause spaces to be overwritten on output data. ! Contributed by Paul Thomas - program tl_editting - character*10 :: line - character*10 :: aline = "abcdefxyij" - character*2 :: bline = "gh" - character*10 :: cline = "abcdefghij" - write (line, '(a10,tl6,2x,a2)') aline, bline - if (line.ne.cline) call abort () - end program tl_editting +! PR25349 Revised by Jerry DeLisle +program tl_editting + character*10 :: line, many(5), s + character*10 :: aline = "abcdefxyij" + character*2 :: bline = "gh" + character*10 :: cline = "abcdefghij" + +! 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 diff --git a/gcc/testsuite/gfortran.dg/write_padding.f90 b/gcc/testsuite/gfortran.dg/write_padding.f90 new file mode 100644 index 000000000000..e1c37917dc40 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/write_padding.f90 @@ -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 . +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 +