aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorFrancois-Xavier Coudert <coudert@clipper.ens.fr>2006-05-05 13:08:23 +0200
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2006-05-05 11:08:23 +0000
commit1633cb7cb6b292ca0cfaa0311b2784927efe7990 (patch)
tree0f2a433855ba9689b3899ab64e40e7f90de20310 /gcc
parent4b5d3f3f419ba55d63b378e6730f6cb932aee549 (diff)
downloadgcc-1633cb7cb6b292ca0cfaa0311b2784927efe7990.zip
gcc-1633cb7cb6b292ca0cfaa0311b2784927efe7990.tar.gz
gcc-1633cb7cb6b292ca0cfaa0311b2784927efe7990.tar.bz2
re PR libfortran/26985 (incorrect matmul result)
PR libfortran/26985 * m4/matmul.m4: Correct the condition for the memset call, and remove the unneeded call to size0. * generated/matmul_r4.c: Regenerate. * generated/matmul_r8.c: Regenerate. * generated/matmul_r10.c: Regenerate. * generated/matmul_r16.c: Regenerate. * generated/matmul_c4.c: Regenerate. * generated/matmul_c8.c: Regenerate. * generated/matmul_c10.c: Regenerate. * generated/matmul_c16.c: Regenerate. * generated/matmul_i4.c: Regenerate. * generated/matmul_i8.c: Regenerate. * generated/matmul_i16.c: Regenerate. * gfortran.dg/matmul_2.f90: New test. From-SVN: r113552
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/matmul_2.f9021
2 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c3cccc5..277f767 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2006-05-05 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/26985
+ * gfortran.dg/matmul_2.f90: New test.
+
2005-05-05 Laurent GUERBY <laurent@guerby.net>
* ada/acats/run_all.sh: Use sync when main not found.
diff --git a/gcc/testsuite/gfortran.dg/matmul_2.f90 b/gcc/testsuite/gfortran.dg/matmul_2.f90
new file mode 100644
index 0000000..fb678af
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/matmul_2.f90
@@ -0,0 +1,21 @@
+!{ dg-do run }
+! PR libfortran/26985
+program matmul_2
+ implicit none
+ integer :: a(2,9), b(9,7), c(2,7)
+ integer :: i, j
+
+ a = 1
+ b = 2
+ c = 1789789
+ c(:,1:7:2) = matmul(a,b(:,1:7:2))
+
+ if (c(1,1) /= 18 .or. c(2,1) /= 18 .or. &
+ c(1,2) /= 1789789 .or. c(2,2) /= 1789789 .or. &
+ c(1,3) /= 18 .or. c(2,3) /= 18 .or. &
+ c(1,4) /= 1789789 .or. c(2,4) /= 1789789 .or. &
+ c(1,5) /= 18 .or. c(2,5) /= 18 .or. &
+ c(1,6) /= 1789789 .or. c(2,6) /= 1789789 .or. &
+ c(1,7) /= 18 .or. c(2,7) /= 18) call abort
+
+end program matmul_2