]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR tree-optimization/35011 (ICE with -fcheck-data-deps)
authorH.J. Lu <hongjiu.lu@intel.com>
Wed, 1 Apr 2009 16:29:28 +0000 (16:29 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Wed, 1 Apr 2009 16:29:28 +0000 (09:29 -0700)
2009-04-01  H.J. Lu  <hongjiu.lu@intel.com>

PR tree-optimization/35011
* g++.dg/other/pr35011.C: New.

From-SVN: r145413

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

index 2d109070c9cd86ae13d7cd0359dfbc94ce74886d..77df8ab711b933a3d648024c62bec63524e8809b 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()))
+{}