summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>2007-09-06 01:32:11 +0000
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>2007-09-06 01:32:11 +0000
commit95189e1af749ef112f7e9e1d979822f2c9ce446c (patch)
treee635ea6ebaf9cb4ef67202e555f5f44bd231f16c /gcc
parent56a58a8c060348988af2dbabebfed25c02de5e32 (diff)
downloadgcc-95189e1af749ef112f7e9e1d979822f2c9ce446c.tar.gz
2007-09-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/33225 * gfortran.dg./fmt_float.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128173 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/fmt_float.f9043
2 files changed, 48 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b1cda56c887..c48beda0672 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2007-09-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ PR libfortran/33225
+ * gfortran.dg./fmt_float.f90: New test.
+
+2007-09-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
PR libfortran/33253
* gfortran.dg/namelist_38.f90: Update test for DELIM= .
diff --git a/gcc/testsuite/gfortran.dg/fmt_float.f90 b/gcc/testsuite/gfortran.dg/fmt_float.f90
new file mode 100644
index 00000000000..3ff1833c773
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/fmt_float.f90
@@ -0,0 +1,43 @@
+! { dg-do run }
+! PR33225 Missing last digit in some formatted output (on 32bit targets)
+! related to per kind write_float patch
+! Test case from PR.
+real x
+x = 1.0
+print '(3E20.2e2)', x, x/10.0, x/100.0
+print '(3E20.2e3)', x, x/10.0, x/100.0
+print '(3E20.2e4)', x, x/10.0, x/100.0
+print '(3E20.2e5)', x, x/10.0, x/100.0
+print '(3E20.2e6)', x, x/10.0, x/100.0
+print '(3E20.2e7)', x, x/10.0, x/100.0
+print '(3E20.3e2)', x, x/10.0, x/100.0
+print '(3E20.3e3)', x, x/10.0, x/100.0
+print '(3E20.3e4)', x, x/10.0, x/100.0
+print '(3E20.3e5)', x, x/10.0, x/100.0
+print '(3E20.3e6)', x, x/10.0, x/100.0
+print '(3E20.3e7)', x, x/10.0, x/100.0
+print '(3E20.4e2)', x, x/10.0, x/100.0
+print '(3E20.4e3)', x, x/10.0, x/100.0
+print '(3E20.4e4)', x, x/10.0, x/100.0
+print '(3E20.4e5)', x, x/10.0, x/100.0
+print '(3E20.4e6)', x, x/10.0, x/100.0
+print '(3E20.4e7)', x, x/10.0, x/100.0
+end
+! { dg-output " 0.10E\\+01 0.10E\\+00 0.10E-01(\n|\r\n|\r)" }
+! { dg-output " 0.10E\\+001 0.10E\\+000 0.10E-001(\n|\r\n|\r)" }
+! { dg-output " 0.10E\\+0001 0.10E\\+0000 0.10E-0001(\n|\r\n|\r)" }
+! { dg-output " 0.10E\\+00001 0.10E\\+00000 0.10E-00001(\n|\r\n|\r)" }
+! { dg-output " 0.10E\\+000001 0.10E\\+000000 0.10E-000001(\n|\r\n|\r)" }
+! { dg-output " 0.10E\\+0000001 0.10E\\+0000000 0.10E-0000001(\n|\r\n|\r)" }
+! { dg-output " 0.100E\\+01 0.100E\\+00 0.100E-01(\n|\r\n|\r)" }
+! { dg-output " 0.100E\\+001 0.100E\\+000 0.100E-001(\n|\r\n|\r)" }
+! { dg-output " 0.100E\\+0001 0.100E\\+0000 0.100E-0001(\n|\r\n|\r)" }
+! { dg-output " 0.100E\\+00001 0.100E\\+00000 0.100E-00001(\n|\r\n|\r)" }
+! { dg-output " 0.100E\\+000001 0.100E\\+000000 0.100E-000001(\n|\r\n|\r)" }
+! { dg-output " 0.100E\\+0000001 0.100E\\+0000000 0.100E-0000001(\n|\r\n|\r)" }
+! { dg-output " 0.1000E\\+01 0.1000E\\+00 0.1000E-01(\n|\r\n|\r)" }
+! { dg-output " 0.1000E\\+001 0.1000E\\+000 0.1000E-001(\n|\r\n|\r)" }
+! { dg-output " 0.1000E\\+0001 0.1000E\\+0000 0.1000E-0001(\n|\r\n|\r)" }
+! { dg-output " 0.1000E\\+00001 0.1000E\\+00000 0.1000E-00001(\n|\r\n|\r)" }
+! { dg-output " 0.1000E\\+000001 0.1000E\\+000000 0.1000E-000001(\n|\r\n|\r)" }
+! { dg-output " 0.1000E\\+0000001 0.1000E\\+0000000 0.1000E-0000001(\n|\r\n|\r)" }