https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93894

--- Comment #2 from Dmitry G. Dyachenko <dimhen at gmail dot com> ---
`unsigned' changes nothing

$ cat xxu.i 
int f1(int j, unsigned k)
{
    switch (j) {
    case 0:
        switch (k % 2) {
        case 0:
            return 0;
        case 1:
            return 1;
        }
        // return 3; // uncomment to fix warning
    default:
        return 2;
    }
}

$ gcc -fpreprocessed -Wimplicit-fallthrough=2 -Og -c xxu.i 
xx.i: In function ‘f1’:
xx.i:5:2: warning: this statement may fall through [-Wimplicit-fallthrough=]
    5 |  switch (k % 2) {
      |  ^~~~~~
xx.i:12:5: note: here
   12 |     default:
      |     ^~~~~~~

Reply via email to