From 420bc2e7aaf96b0da5e89857f7edc08fa45a1f36 Mon Sep 17 00:00:00 2001 From: Jerry DeLisle Date: Mon, 12 Oct 2009 00:54:11 +0000 Subject: [PATCH] re PR fortran/38439 (I/O PD edit descriptor inconsistency) 2009-10-11 Jerry DeLisle PR libgfortran/38439 * gfortran.dg/fmt_error_9.f: New test. * gfortran.dg/fmt_error_10.f: New test. From-SVN: r152658 --- gcc/testsuite/ChangeLog | 6 ++++++ gcc/testsuite/gfortran.dg/fmt_error_10.f | 29 +++++++++++++++++++++++++++++ gcc/testsuite/gfortran.dg/fmt_error_9.f | 25 +++++++++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/fmt_error_10.f create mode 100644 gcc/testsuite/gfortran.dg/fmt_error_9.f 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 + + PR libgfortran/38439 + * gfortran.dg/fmt_error_9.f: New test. + * gfortran.dg/fmt_error_10.f: New test. + 2009-10-11 Paul Thomas 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 + 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 + 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 -- 2.7.4