| // { PR tree-optimization/34063 } | |
| // { dg-do compile } | |
| // { dg-options "-O2" } | |
| struct S | |
| { | |
| double e[9]; | |
| double const & | |
| operator() (int r, int c) const | |
| { | |
| return e[r * 3 + c]; | |
| } | |
| }; | |
| void | |
| foo() | |
| { | |
| S r; | |
| double *p; | |
| for (int j = 0; j < 3; j++) | |
| for (int k = 0; k < 3; k++) | |
| for (int l = k + 1; l < 3; l++) | |
| *p++ = r (k, 0) * r (l, j) + r (k, j) * r (l, 0); | |
| } |