diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/tree-ssa/pr34063.C')
-rw-r--r-- | gcc/testsuite/g++.dg/tree-ssa/pr34063.C | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr34063.C b/gcc/testsuite/g++.dg/tree-ssa/pr34063.C new file mode 100644 index 000000000..994920bb9 --- /dev/null +++ b/gcc/testsuite/g++.dg/tree-ssa/pr34063.C @@ -0,0 +1,25 @@ +// { 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); +} |