aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDaniel Kraft <d@domob.eu>2009-04-05 22:23:21 +0200
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2009-04-05 20:23:21 +0000
commite462f7274cab1ec2d875726ff49c80d1394de006 (patch)
tree86b244a0fcc6025b1bbd8ca5068e1ebb13ba53e4 /gcc
parent7812c78c341fb4c6559cf8158b15c48c7a1d6fde (diff)
downloadgcc-e462f7274cab1ec2d875726ff49c80d1394de006.zip
gcc-e462f7274cab1ec2d875726ff49c80d1394de006.tar.gz
gcc-e462f7274cab1ec2d875726ff49c80d1394de006.tar.bz2
re PR libfortran/38654 (Fortran I/O speedup)
2009-04-05 Daniel Kraft <d@domob.eu> PR fortran/38654 * gfortran.dg/read_float_2.f03 * gfortran.dg/read_float_3.f90 From-SVN: r145572
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gfortran.dg/read_float_2.f0318
-rw-r--r--gcc/testsuite/gfortran.dg/read_float_3.f9021
3 files changed, 45 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 83215bb..87db870 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2009-04-05 Daniel Kraft <d@domob.eu>
+
+ PR fortran/38654
+ * gfortran.dg/read_float_2.f03
+ * gfortran.dg/read_float_3.f90
+
2009-04-05 Richard Guenther <rguenther@suse.de>
PR tree-optimization/39648
diff --git a/gcc/testsuite/gfortran.dg/read_float_2.f03 b/gcc/testsuite/gfortran.dg/read_float_2.f03
new file mode 100644
index 0000000..29344bc
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/read_float_2.f03
@@ -0,0 +1,18 @@
+! { dg-do run }
+! Contributed by Dominique Dhumieres <dominiq@lps.ens.fr>
+
+character(15) :: str="+ .339 567+2"
+real, parameter :: should_be = .339567e2
+real, parameter :: eps = 10 * epsilon (should_be)
+real :: x, y
+
+read(str,'(BN,F15.6)') x
+print *, x
+read(str,'(G15.7)') y
+print *, y
+
+if (abs (x - should_be) > eps .or. abs (y - should_be) > eps) then
+ call abort ()
+end if
+
+end
diff --git a/gcc/testsuite/gfortran.dg/read_float_3.f90 b/gcc/testsuite/gfortran.dg/read_float_3.f90
new file mode 100644
index 0000000..0fa2f5c
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/read_float_3.f90
@@ -0,0 +1,21 @@
+! { dg-do run }
+! Contributed by Dominique Dhumieres <dominiq@lps.ens.fr>
+
+character(100) :: str1 = &
+ "123.00456.88 0.123E+01 +0.987+1 -0.2345+02 -0.6879E+2+0.7E+03 0.4E+03"
+character(100), parameter :: should_be = &
+ "123.00456.88 0.123E+01 0.987E+01-0.2345E+02-0.6879E+02 0.7E+03 0.4E+03"
+character(100) :: output
+complex :: c1, c2, c3, c4
+
+100 format ( 2F6.2, 2E10.3, 2E11.4, 2E8.1)
+read (str1,100) c1, c2, c3, c4
+write (output, 100) c1, c2, c3, c4
+
+print *, output
+if (output /= should_be) then
+ print *, should_be
+ call abort ()
+end if
+
+end