OSDN Git Service

2005-12-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Dec 2005 19:40:36 +0000 (19:40 +0000)
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Dec 2005 19:40:36 +0000 (19:40 +0000)
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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108673 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/t_editing.f [new file with mode: 0644]
gcc/testsuite/gfortran.dg/tl_editing.f90
gcc/testsuite/gfortran.dg/write_padding.f90 [new file with mode: 0644]

index 4031480..3f14f83 100644 (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>
 
        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 (file)
index 0000000..6121e85
--- /dev/null
@@ -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
index 8f9702d..ea86873 100644 (file)
@@ -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 (file)
index 0000000..e1c3791
--- /dev/null
@@ -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
+