OSDN Git Service

2009-04-01 H.J. Lu <hongjiu.lu@intel.com>
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 1 Apr 2009 16:29:28 +0000 (16:29 +0000)
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 1 Apr 2009 16:29:28 +0000 (16:29 +0000)
PR tree-optimization/35011
* g++.dg/other/pr35011.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145413 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/other/pr35011.C [new file with mode: 0644]

index 2d10907..77df8ab 100644 (file)
@@ -1,3 +1,8 @@
+2009-04-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR tree-optimization/35011
+       * g++.dg/other/pr35011.C: New.
+
 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
 
        PR target/39226
diff --git a/gcc/testsuite/g++.dg/other/pr35011.C b/gcc/testsuite/g++.dg/other/pr35011.C
new file mode 100644 (file)
index 0000000..ca75516
--- /dev/null
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-O3 -fcheck-data-deps" }
+
+double foo(const double* p0, const double* p1, const double* q0)
+{
+  double d;
+  for (; p0 != p1; ++p0, ++q0)
+    d += *p0 * *q0;
+  return d;
+}
+
+struct A
+{
+  double x[3];
+  const double* begin() const { return x; }
+};
+
+struct B
+{
+  A a0, a1;
+  double d;
+  B(const A&);
+};
+
+B::B(const A& a) : a0(a), a1(a), d(foo(a0.begin(), a0.begin()+3, a1.begin()))
+{}