summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/matmul_7.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/matmul_7.f90')
-rw-r--r--gcc/testsuite/gfortran.dg/matmul_7.f9040
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