diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/matmul_7.f90')
-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 000000000..b3f925a21 --- /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 |