aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2008-04-16 20:39:08 +0200
committerUros Bizjak <uros@gcc.gnu.org>2008-04-16 20:39:08 +0200
commit64bfac414632be741d0e760d2eacfddb0f72a775 (patch)
tree1129ed91db3463017153bf3103060231a30d36d0
parent300dde2735f5a4799dde2b8ce7f42640fbb4dbdf (diff)
downloadgcc-64bfac414632be741d0e760d2eacfddb0f72a775.zip
gcc-64bfac414632be741d0e760d2eacfddb0f72a775.tar.gz
gcc-64bfac414632be741d0e760d2eacfddb0f72a775.tar.bz2
re PR target/35944 (wrong result for MOD with kind=10 for some array argument values)
PR target/35944 * gfortran.dg/pr35944-1.f90: New test. * gfortran.dg/pr35944-2.f90: Ditto. From-SVN: r134359
-rw-r--r--gcc/testsuite/ChangeLog10
-rw-r--r--gcc/testsuite/gfortran.dg/pr35944-1.f9022
-rw-r--r--gcc/testsuite/gfortran.dg/pr35944-2.f9015
3 files changed, 45 insertions, 2 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 85f4cb3..6f60dc3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2008-04-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR target/35944
+ * gfortran.dg/pr35944-1.f90: New test.
+ * gfortran.dg/pr35944-2.f90: Ditto.
+
2008-04-16 Jakub Jelinek <jakub@redhat.com>
PR c/35739
@@ -212,7 +218,7 @@
* gfortran.dg/bind_c_usage_14.f03: Adjust.
-2008-04-08 Andy Hutchinson <hutchinsonandy@aim.com>
+2008-04-08 Andy Hutchinson <hutchinsonandy@aim.com>
PR target/35005
* execute/20071221-1.c: Adapt test for 16 bit int targets.
@@ -250,7 +256,7 @@
2008-04-07 Kai Tietz <kai.tietz@onevision.com>
PR/35842
- * gcc.dg/torture/pr35842.c: New.
+ * gcc.dg/torture/pr35842.c: New.
2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
diff --git a/gcc/testsuite/gfortran.dg/pr35944-1.f90 b/gcc/testsuite/gfortran.dg/pr35944-1.f90
new file mode 100644
index 0000000..76521ca
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr35944-1.f90
@@ -0,0 +1,22 @@
+! { dg-do run }
+
+ implicit none
+ integer i
+ real rda1(10), rda(10), rval
+ double precision dda1(10), dda(10), dval
+
+ rda = (/ 1,2,3,4,5,6,7,8,9,10 /)
+ rDA1 = MOD (1.1*(rDA(1)-5.0), P=(rDA-2.5))
+ DO i = 1, 10
+ rVAL = MOD (1.1*(rDA(1)-5.0), P=(rDA(i)-2.5))
+ if (rval /= rda1(i)) call abort
+ enddo
+
+ dda = (/ 1,2,3,4,5,6,7,8,9,10 /)
+ dDA1 = MOD (1.1d0*(dDA(1)-5.0d0), P=(dDA-2.5d0))
+ DO i = 1, 10
+ dVAL = MOD (1.1d0*(dDA(1)-5.0d0), P=(dDA(i)-2.5d0))
+ if (dval /= dda1(i)) call abort
+ enddo
+
+end
diff --git a/gcc/testsuite/gfortran.dg/pr35944-2.f90 b/gcc/testsuite/gfortran.dg/pr35944-2.f90
new file mode 100644
index 0000000..976332d
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr35944-2.f90
@@ -0,0 +1,15 @@
+! { dg-do run }
+! { dg-require-effective-target fortran_large_real }
+
+ implicit none
+ integer,parameter :: k = selected_real_kind (precision (0.0_8) + 1)
+ integer :: i
+ real(k) :: qda1(10), qda(10), qval
+
+ qda = (/ 1,2,3,4,5,6,7,8,9,10 /)
+ QDA1 = MOD (1.1_k*(QDA(1)-5.0_k), P=(QDA-2.5_k))
+ DO i = 1, 10
+ QVAL = MOD (1.1_k*(QDA(1)-5.0_k), P=(QDA(i)-2.5_k))
+ if (qval /= qda1(i)) call abort
+ enddo
+end