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.
Regstrapped on x86_64-linux-gnu. Ok to install? for gcc/testsuite/ChangeLog PR tree-optimization/103845 PR tree-optimization/104263 * gcc.dg/pr103845.c: New. --- gcc/testsuite/gcc.dg/pr103845.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/pr103845.c diff --git a/gcc/testsuite/gcc.dg/pr103845.c b/gcc/testsuite/gcc.dg/pr103845.c new file mode 100644 index 0000000000000..45ab518d07c9a --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr103845.c @@ -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; +} -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about <https://stallmansupport.org>