diff options
author | Francois-Xavier Coudert <coudert@clipper.ens.fr> | 2006-05-05 13:08:23 +0200 |
---|---|---|
committer | François-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2006-05-05 11:08:23 +0000 |
commit | 1633cb7cb6b292ca0cfaa0311b2784927efe7990 (patch) | |
tree | 0f2a433855ba9689b3899ab64e40e7f90de20310 /gcc | |
parent | 4b5d3f3f419ba55d63b378e6730f6cb932aee549 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/matmul_2.f90 | 21 |
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 |