https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122390
--- Comment #4 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Andrew Pinski from comment #1)
> A better example is:
> ```
> int g(unsigned long xlo, long xhi, unsigned long ylo, long yhi)
> {
> return xhi - yhi - (xlo < ylo) < xhi;
> }
> ```
>
> I think
Actually, the testcase needs to be:
_Bool g (unsigned xlo, unsigned xhi, unsigned ylo, unsigned yhi)
{
return xhi - yhi - (xlo < ylo) > xhi;
}
Because only unsigned a - b > a equals a < b.