diff gcc/testsuite/gcc.dg/pr44012.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/gcc.dg/pr44012.c	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,58 @@
+/* { dg-do compile } */
+/* { dg-options "-O -fgcse" } */
+
+extern void fe ();
+
+extern int i;
+
+static inline void
+FX (void (*f) ())
+{
+  fe ();
+  (*f) ();
+}
+
+static inline void
+f4 ()
+{
+  for (;;)
+    switch (i)
+      {
+      case 306:
+      FX (&fe);
+      break;
+      default:
+      return;
+      }
+}
+
+static inline void
+f3 ()
+{
+  f4 ();
+  for (;;)
+    switch (i)
+      {
+      case 267:
+      FX (&f4);
+      break;
+      default:
+      return;
+      }
+}
+
+static inline void
+f2 ()
+{
+  f3 ();
+  while (i)
+    FX (&f3);
+}
+
+void
+f1 ()
+{
+  f2 ();
+  while (1)
+    FX (&f2);
+}