https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118572
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|[15 regression] wrong code |[15 regression] wrong code |for expression ((0x80 & c) |for expression ((0x80 & c) |!= 0) && ((0xc0 & c) == |!= 0) && ((0xc0 & c) == |0x80)) |0x80)) since r15-6893 --- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Started with r15-6893-g22fe3c05d86b52c35850918bfb21e1f597e1b5c7 And indeed, doesn't fail with -funsigned-char, so maybe test with explicit signed char (and perhaps also separately unsigned char).