re PR libfortran/33225 (Missing last digit in some formatted output (on 32bit targets...
authorJerry DeLisle <jvdelisle@gcc.gnu.org>
Thu, 6 Sep 2007 01:32:11 +0000 (01:32 +0000)
committerJerry DeLisle <jvdelisle@gcc.gnu.org>
Thu, 6 Sep 2007 01:32:11 +0000 (01:32 +0000)
2007-09-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libfortran/33225
* gfortran.dg./fmt_float.f90: New test.

From-SVN: r128173

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/fmt_float.f90 [new file with mode: 0644]

index b1cda56c88713fb986cd8059024fe504d44fbc6f..c48beda0672808e273e16ee560e4c59c1b990b4d 100644 (file)
@@ -1,3 +1,8 @@
+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
diff --git a/gcc/testsuite/gfortran.dg/fmt_float.f90 b/gcc/testsuite/gfortran.dg/fmt_float.f90
new file mode 100644 (file)
index 0000000..3ff1833
--- /dev/null
@@ -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)" }