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:
| ^~~~~~~