aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBud Davis <bdavis9659@comcast.net>2004-05-15 18:35:39 +0000
committerPaul Brook <pbrook@gcc.gnu.org>2004-05-15 18:35:39 +0000
commit94161cec950961a9b8f76db8ef0035dd840d542e (patch)
tree6e6e8b8beb5dc2aee64c348240fde8280384a9f1
parent1de8a83646644d4486ddceea6a6c102133b8f1be (diff)
downloadgcc-94161cec950961a9b8f76db8ef0035dd840d542e.zip
gcc-94161cec950961a9b8f76db8ef0035dd840d542e.tar.gz
gcc-94161cec950961a9b8f76db8ef0035dd840d542e.tar.bz2
re PR libfortran/15311 (Incorrect handling of A edit descriptor)
PR fortran/15311 * io/write.c (write_a): right justify A edit output. libgfortran/ * gfortran.fortran-torture/execute/write_a_1.f90: New test. From-SVN: r81895
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/execute/write_a_1.f9014
-rw-r--r--libgfortran/ChangeLog5
-rw-r--r--libgfortran/io/write.c4
4 files changed, 26 insertions, 2 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c1a37d6..3f543a2 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
index 0000000..18cb103
--- /dev/null
+++ b/gcc/testsuite/gfortran.fortran-torture/execute/write_a_1.f90
@@ -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
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index bbf22d4..2ebef7f 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -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
diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c
index dd44f6e..05dbd9b 100644
--- a/libgfortran/io/write.c
+++ b/libgfortran/io/write.c
@@ -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);
}
}