------- Comment #1 from pinskia at gcc dot gnu dot org 2009-07-14 19:21 ------- Theses are not false warnings: c >>= 1;
is really c = (int)c >> 1; c += (char) 1; c = (int)c + (int)(char)1; c += c2; c = (int)c + (int) c2; c = ~c2; c = ~(int)c2; Only the last one might be a false warning depending on if c2 is negative or unsigned or not. The rest are correct because of the way C/C++ define arithmetic operations and automatic promotions. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40752