------- Comment #2 from jakub at gcc dot gnu dot org 2009-03-09 08:22 ------- This isn't related to just bool, e.g.: void foo (unsigned char b) { switch ((unsigned int) b) { case 1: case 257: break; } } also results in pr39371-2.C:7: warning: large integer implicitly truncated to unsigned type pr39371-2.C:7: error: duplicate case value pr39371-2.C:6: error: previously used here
In C both testcases are fine. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39371