2009-03-04 Nathan Sidwell <nathan@codesourcery.com>
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 4 Mar 2009 23:26:51 +0000 (23:26 +0000)
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 4 Mar 2009 23:26:51 +0000 (23:26 +0000)
* g++.dg/torture/predcom-1.C: New test.

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

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/torture/predcom-1.C [new file with mode: 0644]

index ca0a6ee..a2f28bb 100644 (file)
@@ -1,3 +1,7 @@
+2009-03-04  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * g++.dg/torture/predcom-1.C: New test.
+
 2009-03-04  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/39362
diff --git a/gcc/testsuite/g++.dg/torture/predcom-1.C b/gcc/testsuite/g++.dg/torture/predcom-1.C
new file mode 100644 (file)
index 0000000..c668cac
--- /dev/null
@@ -0,0 +1,29 @@
+/* Test for ICE in predictive commoning with empty loop header block
+   on arm-none-linux-gnueabi.  */
+
+struct Foo
+{
+  double *ptr;
+  
+  Foo (double *ptr_)
+    : ptr (ptr_)
+  {
+  }
+  
+  Foo PostInc ()
+  {
+    return Foo (ptr++);
+  }
+};
+
+bool Baz (Foo first, double *last)
+{
+  Foo prev (first.ptr);
+  
+  first.ptr++;
+
+  while (first.ptr != last)
+    if (*first.PostInc ().ptr < *prev.PostInc ().ptr)
+      return false;
+}
+