aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/ChangeLog8
-rw-r--r--gcc/testsuite/gfortran.dg/t_editing.f8
-rw-r--r--gcc/testsuite/gfortran.dg/tl_editing.f9034
-rw-r--r--gcc/testsuite/gfortran.dg/write_padding.f9013
4 files changed, 55 insertions, 8 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4031480..3f14f83 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 0000000..6121e85
--- /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 8f9702d..ea86873 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 0000000..e1c3791
--- /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
+