Sophie

Sophie

distrib > Mageia > 5 > i586 > by-pkgid > b7b8b32bb04bd446e18064781a60a954 > files > 21

gcc-4.9.2-4.1.mga5.src.rpm

From ae877effdd53f5288d7a01684620c8896af364bd Mon Sep 17 00:00:00 2001
From: unknown author <cooker@mandrivalinux.org>
Date: Tue, 10 Feb 2009 15:47:48 +0000
Subject: gcc33 pr11536 testcase

2003-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* gcc.c-torture/execute/loop-16.c: New test.
---
 gcc/testsuite/gcc.c-torture/execute/loop-16.c |   40 +++++++++++++++++++++++++
 1 files changed, 40 insertions(+), 0 deletions(-)
 create mode 100644 gcc/testsuite/gcc.c-torture/execute/loop-16.c

diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-16.c b/gcc/testsuite/gcc.c-torture/execute/loop-16.c
new file mode 100644
index 0000000..d16f1e6
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/loop-16.c
@@ -0,0 +1,40 @@
+/* PR optimization/11536 */
+/* Origin: samal@kam.mff.cuni.cz <samal@kam.mff.cuni.cz> */
+/* Testcase by Andrew Pinsky <pinskia@physics.uc.edu> */
+
+/* Verify that the loop optimizer doesn't use moving targets
+   to calculate the number of iterations of a loop.  */
+
+extern void abort(void);
+
+void foo(int) __attribute__((__noinline__));
+
+void foo(int i)
+{
+  abort();
+}
+
+int main()
+{
+  int i;
+  int first= 0;
+  int last= 0;
+
+  while (last<3) {
+    last = first;
+
+    while (first<=last) {
+      first++;
+
+      for (i=0;i<3;i++)
+        last++;
+
+      if (last>10)
+        return 0;
+    }
+    
+    foo(first);
+  }
+
+  return 0;
+}
-- 
1.6.2.4