OSDN Git Service

PR fortran/15311
authorpbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 15 May 2004 18:35:39 +0000 (18:35 +0000)
committerpbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 15 May 2004 18:35:39 +0000 (18:35 +0000)
* io/write.c (write_a): right justify A edit output.
libgfortran/
* gfortran.fortran-torture/execute/write_a_1.f90: New test.

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

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.fortran-torture/execute/write_a_1.f90 [new file with mode: 0644]
libgfortran/ChangeLog
libgfortran/io/write.c

index c1a37d6..3f543a2 100644 (file)
@@ -1,3 +1,8 @@
+2004-05-15  Bud Davis  <bdavis9659@comcast.net>
+
+       PR fortran/15311
+       * gfortran.fortran-torture/execute/write_a_1.f90: New test.
+
 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
 
        PR fortran/13826
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/write_a_1.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/write_a_1.f90
new file mode 100644 (file)
index 0000000..18cb103
--- /dev/null
@@ -0,0 +1,14 @@
+! pr 15311
+! output with 'A' edit descriptor
+      program write_a_1
+      character*25 s
+! string = format
+      write(s,'(A11)') "hello world"
+      if (s.ne."hello world") call abort
+! string < format
+      write(s,'(A2)') "hello world"
+      if (s.ne."he") call abort
+! string > format
+      write(s,'(A18)') "hello world"
+      if (s.ne."       hello world") call abort
+      end
index bbf22d4..2ebef7f 100644 (file)
@@ -1,3 +1,8 @@
+2004-05-15  Bud Davis  <bdavis9659@comcast.net>
+
+       PR fortran/15311
+       * io/write.c (write_a): right justify A edit output.
+
 2004-05-14  Bud Davis  <bdavis9659@comcast.net>
 
        PR fortran/15149
index dd44f6e..05dbd9b 100644 (file)
@@ -50,8 +50,8 @@ write_a (fnode * f, const char *source, int len)
     memcpy (p, source, wlen);
   else
     {
-      memcpy (p, source, len);
-      memset (p + len, ' ', wlen - len);
+      memset (p, ' ', wlen - len);
+      memcpy (p + wlen - len, source, len);
     }
 }