diff options
author | Bud Davis <bdavis9659@comcast.net> | 2004-05-15 18:35:39 +0000 |
---|---|---|
committer | Paul Brook <pbrook@gcc.gnu.org> | 2004-05-15 18:35:39 +0000 |
commit | 94161cec950961a9b8f76db8ef0035dd840d542e (patch) | |
tree | 6e6e8b8beb5dc2aee64c348240fde8280384a9f1 | |
parent | 1de8a83646644d4486ddceea6a6c102133b8f1be (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.fortran-torture/execute/write_a_1.f90 | 14 | ||||
-rw-r--r-- | libgfortran/ChangeLog | 5 | ||||
-rw-r--r-- | libgfortran/io/write.c | 4 |
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); } } |