From 184210e82c5572ee07f62fe342f42d38d20f54e6 Mon Sep 17 00:00:00 2001 From: Jerry DeLisle <jvdelisle@gcc.gnu.org> Date: Fri, 16 Dec 2005 19:40:36 +0000 Subject: [PATCH] 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 --- gcc/testsuite/ChangeLog | 8 +++++ gcc/testsuite/gfortran.dg/t_editing.f | 8 +++++ gcc/testsuite/gfortran.dg/tl_editing.f90 | 34 ++++++++++++++++----- gcc/testsuite/gfortran.dg/write_padding.f90 | 13 ++++++++ 4 files changed, 55 insertions(+), 8 deletions(-) create mode 100644 gcc/testsuite/gfortran.dg/t_editing.f create mode 100644 gcc/testsuite/gfortran.dg/write_padding.f90 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 <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> 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 <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 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 <pault@gcc.gnu.org> - 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 <jvdelisle@gcc.gnu.org> +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 <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 + -- GitLab