https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104525
--- Comment #1 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> --- with "-fsigned-char", the case run ok. When 'char' is treated as 'unsigned': "c != -4" would not be true is any value of 'c'. So, this PR would be invalid.