aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2004-06-13 22:58:30 +0000
committerPaul Brook <pbrook@gcc.gnu.org>2004-06-13 22:58:30 +0000
commita9e7b9d395c19da3ee99fae73d4d0f3e3a3121f5 (patch)
tree87140abfa92875e6ac3d94de1530eac1b616417c /gcc
parent3bce843ee30206917ccdfbf283c73e19a2ce633c (diff)
downloadgcc-a9e7b9d395c19da3ee99fae73d4d0f3e3a3121f5.zip
gcc-a9e7b9d395c19da3ee99fae73d4d0f3e3a3121f5.tar.gz
gcc-a9e7b9d395c19da3ee99fae73d4d0f3e3a3121f5.tar.bz2
Makefile.am (gfor_helper_src): Add runtime/normalize.f90.
* Makefile.am (gfor_helper_src): Add runtime/normalize.f90. * configure.ac: Add checks for nextafter and nextafterf. * Makefile.in, config.h.in, configure: Regenerate. * libgfortran.h (normalize_r4_i4, normalize_r8_i8): Declare. * intrinsics/rand.c (rand): Use normalize_r4_i4. * intrinsics/random.c (random_r4): Use normalize_r4_i4. (random_r8): Use normalize_r8_i8. * runtime/normalize.c: New file. testsuite/ * gfortran.fortran-torture/execute/random_2.f90: New test. From-SVN: r83070
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/execute/random_2.f9024
2 files changed, 28 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0aea152..86926967 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2004-06-13 Paul Brook <paul@codesourcery.com>
+
+ * gfortran.fortran-torture/execute/random_2.f90: New test.
+
2004-06-13 Eric Christopher <echristo@redhat.com>
* gcc.dg/noncompile/redecl-1.c: Fix error message.
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/random_2.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/random_2.f90
new file mode 100644
index 0000000..1666833
--- /dev/null
+++ b/gcc/testsuite/gfortran.fortran-torture/execute/random_2.f90
@@ -0,0 +1,24 @@
+! Check that the real(4) and real(8) random number generators return the same
+! sequence of values.
+program random_4
+ integer, dimension(:), allocatable :: seed
+ real(kind=4), dimension(10) :: r4
+ real(kind=8), dimension(10) :: r8
+ real, parameter :: delta = 0.0001
+ integer n
+
+ call random_seed (size=n)
+ allocate (seed(n))
+ call random_seed (get=seed)
+ ! Test both array valued and scalar routines.
+ call random_number(r4)
+ call random_number (r4(10))
+
+ ! Reset the seed and get the real(8) values.
+ call random_seed (put=seed)
+ call random_number(r8)
+ call random_number (r8(10))
+
+ if (any ((r4 - r8) .gt. delta)) call abort
+end program
+