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; }