diff --git a/gcc/testsuite/gcc.c-torture/compile/pr110251.c b/gcc/testsuite/gcc.c-torture/compile/pr110251.c
new file mode 100644
index 0000000000000000000000000000000000000000..e2536586df81afbac8188739f0c02f8f30ad8a1d
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr110251.c
@@ -0,0 +1,27 @@
+/* PR tree-optimization/110251 */
+
+int a, b;
+signed char c;
+
+int
+foo (int e)
+{
+  if (e >= 'a')
+    return e;
+}
+
+int
+bar (unsigned short e)
+{
+  for (; e; a++)
+    e &= e - 1;
+}
+
+void
+baz (void)
+{
+  while (c < 1)
+    ;
+  for (; bar (c - 1); b = foo (c))
+    ;
+}