Update concepts branch to revision 131834
[official-gcc.git] / gcc / testsuite / g++.dg / template / local2.C
blob51c946a5a49befd9ec198f5dc2c71bda99105754
1 template<typename T>
2 struct X {
3     double & f (const unsigned int i,
4                  const unsigned int j);
5     void g (X &M);
6 };
8 template <typename T>
9 void X<T>::g (X &x) {
10         double t14 = x.f(0,0)*x.f(1,1);
11         double t15 = x.f(2,2)*x.f(3,3);
12         double t17 = x.f(2,3)*x.f(3,2);
13         double t19 = x.f(0,0)*x.f(2,1);
14         double t20 = x.f(1,2)*x.f(3,3);
15         double t22 = x.f(1,3)*x.f(3,2);
16         double t24 = x.f(0,0)*x.f(3,1);
17         double t25 = x.f(1,2)*x.f(2,3);
18         double t27 = x.f(1,3)*x.f(2,2);
19         double t29 = x.f(1,0)*x.f(0,1);
20         double t32 = x.f(1,0)*x.f(2,1);
21         double t33 = x.f(0,2)*x.f(3,3);
22         double t35 = x.f(0,3)*x.f(3,2);
23         double t37 = x.f(1,0)*x.f(3,1);
24         double t38 = x.f(0,2)*x.f(2,3);
25         double t40 = x.f(0,3)*x.f(2,2);
26         double t42 = t14*t15-t14*t17-t19*t20+t19*t22+
27                            t24*t25-t24*t27-t29*t15+t29*t17+
28                            t32*t33-t32*t35-t37*t38+t37*t40;
29         double t43 = x.f(2,0)*x.f(0,1);
30         double t46 = x.f(2,0)*x.f(1,1);
31         double t49 = x.f(2,0)*x.f(3,1);
32         double t50 = x.f(0,2)*x.f(1,3);
33         double t52 = x.f(0,3)*x.f(1,2);
34         double t54 = x.f(3,0)*x.f(0,1);
35         double t57 = x.f(3,0)*x.f(1,1);
36         double t60 = x.f(3,0)*x.f(2,1);
37         double t63 = t43*t20-t43*t22-t46*t33+t46*t35+
38                            t49*t50-t49*t52-t54*t25+t54*t27+
39                            t57*t38-t57*t40-t60*t50+t60*t52;
40         double t65 = 1/(t42+t63);
41         double t71 = x.f(0,2)*x.f(2,1);
42         double t73 = x.f(0,3)*x.f(2,1);
43         double t75 = x.f(0,2)*x.f(3,1);
44         double t77 = x.f(0,3)*x.f(3,1);
45         double t81 = x.f(0,1)*x.f(1,2);
46         double t83 = x.f(0,1)*x.f(1,3);
47         double t85 = x.f(0,2)*x.f(1,1);
48         double t87 = x.f(0,3)*x.f(1,1);
49         double t101 = x.f(1,0)*x.f(2,2);
50         double t103 = x.f(1,0)*x.f(2,3);
51         double t105 = x.f(2,0)*x.f(1,2);
52         double t107 = x.f(2,0)*x.f(1,3);
53         double t109 = x.f(3,0)*x.f(1,2);
54         double t111 = x.f(3,0)*x.f(1,3);
55         double t115 = x.f(0,0)*x.f(2,2);
56         double t117 = x.f(0,0)*x.f(2,3);
57         double t119 = x.f(2,0)*x.f(0,2);
58         double t121 = x.f(2,0)*x.f(0,3);
61 template void X<double>::g (X<double>&);