https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46935
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--- Comment #9 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to Martin Liška from comment #8)
> The test-case is still valid.
Sorry, no, the issue is already solved with GCC 9.2:
crud (unsigned char c)
{
_Bool _11;
int iftmp.0_14;
int _16;
long unsigned int _24;
_Bool _26;
int _30;
long unsigned int _32;
<bb 2> [local count: 1073741823]:
if (c_15(D) > 62)
goto <bb 4>; [50.00%]
else
goto <bb 3>; [50.00%]
<bb 3> [local count: 536870911]:
_16 = (int) c_15(D);
_24 = 6629387187945209855 >> _16;
_32 = ~_24;
_26 = (_Bool) _32;
if (_26 != 0)
goto <bb 4>; [20.00%]
else
goto <bb 5>; [80.00%]
<bb 4> [local count: 536870911]:
_11 = c_15(D) == 92;
_30 = (int) _11;
<bb 5> [local count: 1073741824]:
# iftmp.0_14 = PHI <_30(4), 1(3)>
return iftmp.0_14;
}