diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2008-04-23 05:50:54 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2008-04-23 05:50:54 +0000 |
commit | 7edc89d4c168867a240e54533b2214bbc2a1987c (patch) | |
tree | bd46eec170f8c0e3cf03ec5971a682da2e37e83a /gcc/testsuite/gfortran.dg | |
parent | d5555b955d4a769168475e623597cf822d8fd82a (diff) | |
download | gcc-7edc89d4c168867a240e54533b2214bbc2a1987c.zip gcc-7edc89d4c168867a240e54533b2214bbc2a1987c.tar.gz gcc-7edc89d4c168867a240e54533b2214bbc2a1987c.tar.bz2 |
re PR fortran/35988 (run-time abort for MATMUL of run-time zero sized array)
2008-04-23 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/35988
* m4/matmul.m4: Only issue a runtime error if extents are
non-zero.
* generated/matmul_i1.c: Regenerated.
* generated/matmul_i2.c: Regenerated.
* generated/matmul_i4.c: Regenerated.
* generated/matmul_i8.c: Regenerated.
* generated/matmul_i16.c: Regenerated.
* generated/matmul_r4.c: Regenerated.
* generated/matmul_r8.c: Regenerated.
* generated/matmul_r10.c: Regenerated.
* generated/matmul_r16.c: Regenerated.
* generated/matmul_c4.c: Regenerated.
* generated/matmul_c8.c: Regenerated.
* generated/matmul_c10.c: Regenerated.
* generated/matmul_c16.c: Regenerated.
2008-04-23 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/35988
* gfortran.dg/matmul_7.f90: New test.
From-SVN: r134579
Diffstat (limited to 'gcc/testsuite/gfortran.dg')
-rw-r--r-- | gcc/testsuite/gfortran.dg/matmul_7.f90 | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/matmul_7.f90 b/gcc/testsuite/gfortran.dg/matmul_7.f90 new file mode 100644 index 0000000..b3f925a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/matmul_7.f90 @@ -0,0 +1,40 @@ +! { dg-do run } +! PR 35988 - failure on some zero-sized matmuls. +! Test case contributed by Dick Hendrickson. + + program try_gf1003 + + call gf1003a( 9, 8, 6) + call gf1003b( 9, 8, 6) + call gf1003c( 9, 8, 6) !fails + call gf1003d( 9, 8, 6) !fails + end program + + + SUBROUTINE GF1003a(nf9,nf8,nf6) + REAL RDA(3,2) + REAL RDA1(3,5) + REAL RDA2(5,2) + RDA = MATMUL(RDA1(:, 9:8),RDA2( 8:6,:)) + END SUBROUTINE + + SUBROUTINE GF1003b(nf9,nf8,nf6) + REAL RDA(3,2) + REAL RDA1(3,0) + REAL RDA2(0,2) + RDA = MATMUL(RDA1(:,NF9:NF8),RDA2(NF9:NF8,:)) + END SUBROUTINE + + SUBROUTINE GF1003c(nf9,nf8,nf6) + REAL RDA(3,2) + REAL RDA1(3,0) + REAL RDA2(0,2) + RDA = MATMUL(RDA1(:,NF9:NF8),RDA2(NF8:NF6,:)) + END SUBROUTINE + + SUBROUTINE GF1003d(nf9,nf8,nf6) + REAL RDA(3,2) + REAL RDA1(3,5) + REAL RDA2(5,2) + RDA = MATMUL(RDA1(:,NF9:NF8),RDA2(NF8:NF6,:)) + END SUBROUTINE |