http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60439
--- Comment #3 from Chengnian Sun <chengniansun at gmail dot com> --- (In reply to Marek Polacek from comment #2) > Right. So I think there's nothing much to do. Please reopen if you > strongly disagree. Hi Marek, >From the perspective of type system, I think no warning is fine. But from the viewpoint of practice, IMHO this should be an overlooked case, as at runtime there is indeed overflow. The reason that I filed this report is not only that Clang emits a warning on this issue (shown as below), but also that Gcc is able to handle the value range of expressions (if I under the report PR60036 correctly). ------------------------------------------------------------------- $: clang-trunk -Wswitch s.c -c s.c:3:8: warning: overflow converting case value to switch condition type (111111 to 7) [-Wswitch] case 111111: return 1; /*warning here*/ ^ s.c:8:3: warning: switch condition has boolean value switch(c && d) { ^ ~~~~~~