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