]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR middle-end/55481 (-O2 generates a wrong-code infinite loop in C++Benchmark...
authorRichard Biener <rguenther@suse.de>
Fri, 1 Mar 2013 12:29:39 +0000 (12:29 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 1 Mar 2013 12:29:39 +0000 (12:29 +0000)
2013-03-01  Richard Biener  <rguenther@suse.de>

PR tree-optimization/55481
* gcc.dg/torture/pr56488.c: New testcase.

From-SVN: r196377

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/pr56488.c [new file with mode: 0644]

index 527fefb0b6c768771c9614484c394af9cf90a954..8a2daadd2dd17b65d993c66b7f98e48a3723b35d 100644 (file)
@@ -1,3 +1,8 @@
+2013-03-01  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/55481
+       * gcc.dg/torture/pr56488.c: New testcase.
+
 2013-02-28  Konstantin Serebryany  <konstantin.s.serebryany@gmail.com>
            Jakub Jelinek  <jakub@redhat.com>
 
diff --git a/gcc/testsuite/gcc.dg/torture/pr56488.c b/gcc/testsuite/gcc.dg/torture/pr56488.c
new file mode 100644 (file)
index 0000000..78bac7b
--- /dev/null
@@ -0,0 +1,31 @@
+/* { dg-do run } */
+
+int a, c, d = 1;
+struct S { int s; } b, f;
+short e;
+
+static void
+foo (int x)
+{
+  int g[] = { };
+  for (e = 0; e != 1; e = e + 5)
+    {
+      int *h[1] = { &g[0] };
+      if (!x)
+       return;
+      f = b;
+    }
+}
+
+int
+main ()
+{
+  int i, j;
+  for (i = 0; i < 6; i++)
+    for (j = 8; j; j--)
+      a = 0;
+  foo (d);
+  while (c)
+    ;
+  return 0;
+}