diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.jason/template5.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.jason/template5.C | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template5.C b/gcc/testsuite/g++.old-deja/g++.jason/template5.C new file mode 100644 index 000000000..8401eafa9 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.jason/template5.C @@ -0,0 +1,28 @@ +// { dg-do assemble } +// Bug: g++ fails to compare integer constants properly. + +template <int X, int Y> +struct Matrix { + int base [X] [Y]; +}; + +template <int M,int H,int N> +Matrix<M,N>& Mul(Matrix<M,N>& Q,Matrix<M,H>& A,Matrix<H,N>& B) { + for(int i=0;i<M;i++) { + for(int j=0;j<N;j++) { + Q.base[i][j]=0; + for(int k=0;k<H;k++) { + Q.base[i][j]+=A.base[i][k]*B.base[k][j]; + } + } + } + return Q; +} + +void f () +{ + Matrix<2, 3> q; + Matrix<2, 4> a; + Matrix<4, 3> b; + q = Mul (q, a, b); +} |