Add testcase from PR103845
authorAlexandre Oliva <oliva@adacore.com>
Fri, 25 Feb 2022 01:03:38 +0000 (22:03 -0300)
committerAlexandre Oliva <oliva@gnu.org>
Fri, 25 Feb 2022 01:16:56 +0000 (22:16 -0300)
This problem was already fixed as part of PR104263: the abnormal edge
that remained from before inlining didn't make sense after inlining.
So this patch adds only the testcase.

for  gcc/testsuite/ChangeLog

PR tree-optimization/103845
PR tree-optimization/104263
* gcc.dg/pr103845.c: New.

gcc/testsuite/gcc.dg/pr103845.c [new file with mode: 0644]

diff --git a/gcc/testsuite/gcc.dg/pr103845.c b/gcc/testsuite/gcc.dg/pr103845.c
new file mode 100644 (file)
index 0000000..45ab518
--- /dev/null
@@ -0,0 +1,29 @@
+/* { dg-do compile } */
+/* { dg-options "-O1 -fharden-compares -fno-ipa-pure-const" } */
+
+int
+baz (void);
+
+__attribute__ ((returns_twice)) void
+bar (void)
+{
+}
+
+int
+quux (int y, int z)
+{
+  return (y || z >= 0) ? y : z;
+}
+
+int
+foo (int x)
+{
+  int a = 0, b = x == a;
+
+  bar ();
+
+  if (!!baz () < quux (b, a))
+    ++x;
+
+  return x;
+}