diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2009-10-12 00:54:11 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2009-10-12 00:54:11 +0000 |
commit | 420bc2e7aaf96b0da5e89857f7edc08fa45a1f36 (patch) | |
tree | fa52ec588ba282f640e1698a2dcec230cf7153e5 | |
parent | a30595bf4307163e07024b776fa7c8e184962298 (diff) | |
download | gcc-420bc2e7aaf96b0da5e89857f7edc08fa45a1f36.zip gcc-420bc2e7aaf96b0da5e89857f7edc08fa45a1f36.tar.gz gcc-420bc2e7aaf96b0da5e89857f7edc08fa45a1f36.tar.bz2 |
re PR fortran/38439 (I/O PD edit descriptor inconsistency)
2009-10-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/38439
* gfortran.dg/fmt_error_9.f: New test.
* gfortran.dg/fmt_error_10.f: New test.
From-SVN: r152658
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/fmt_error_10.f | 29 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/fmt_error_9.f | 25 |
3 files changed, 60 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a7b18d0..4865c0d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2009-10-11 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR libgfortran/38439 + * gfortran.dg/fmt_error_9.f: New test. + * gfortran.dg/fmt_error_10.f: New test. + 2009-10-11 Paul Thomas <pault@gcc.gnu.org> PR fortran/41583 diff --git a/gcc/testsuite/gfortran.dg/fmt_error_10.f b/gcc/testsuite/gfortran.dg/fmt_error_10.f new file mode 100644 index 0000000..c2a9117 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/fmt_error_10.f @@ -0,0 +1,29 @@ +! { dg-do run } +! { dg-options "-std=legacy" } +! PR38439 I/O PD edit descriptor inconsistency +! Test case prepared by Jerry DeLisle <jvdelisle@gcc.gnu.org> + character(len=25) :: str + character(len=132) :: msg, line + str = '(1pd24.15e6)' + line = "initial string" + x = 555.25 + + write (line,str,iostat=istat, iomsg=msg) 1.0d0, 1.234 + if (istat.ne.0) call abort + if (line.ne." 1.000000000000000D+001.E+00") call abort + + write (line,'(1pd24.15e6)',iostat=istat, iomsg=msg) 1.0d0, 1.234 ! { dg-warning "Period required" } + if (istat.ne.0) call abort + if (line.ne." 1.000000000000000D+001.E+00") call abort + + str = '(1pd0.15)' + write (line,str,iostat=istat, iomsg=msg) 1.0d0 + if (istat.ne.5006 .or. msg(1:15).ne."Positive width ") call abort + read (*,str,iostat=istat, iomsg=msg) x + if (istat.ne.5006 .or. msg(1:15).ne."Positive width ") call abort + if (x.ne.555.25) call abort + + write (line,'(1pd24.15e11.3)') 1.0d0, 1.234 + if (line.ne." 1.000000000000000D+00 1.234E+00") call abort + + end diff --git a/gcc/testsuite/gfortran.dg/fmt_error_9.f b/gcc/testsuite/gfortran.dg/fmt_error_9.f new file mode 100644 index 0000000..0f2b63b --- /dev/null +++ b/gcc/testsuite/gfortran.dg/fmt_error_9.f @@ -0,0 +1,25 @@ +! { dg-do run } +! { dg-options "-std=gnu" } +! PR38439 I/O PD edit descriptor inconsistency +! Test case prepared by Jerry DeLisle <jvdelisle@gcc.gnu.org> + character(len=25) :: str + character(len=132) :: msg, line + str = '(1pd24.15e6)' + line = "initial string" + x = 555.25 + + write (line,str,iostat=istat, iomsg=msg) 1.0d0, 1.234 + if (istat.ne.5006 .or. msg(1:15).ne."Period required") call abort + if (line.ne."initial string") call abort + + str = '(1pf0.15)' + write (line,str,iostat=istat, iomsg=msg) 1.0d0 + if (istat.ne.0) call abort + read (*,str,iostat=istat, iomsg=msg) x + if (istat.ne.5006 .or. msg(1:15).ne."Positive width ") call abort + if (x.ne.555.25) call abort + + write (line,'(1pd24.15e11.3)') 1.0d0, 1.234 + if (line.ne." 1.000000000000000D+00 1.234E+00") call abort + + end |