kdb: kdb_main: mark expected switch fall-throughs
PATCH 1/1 kdb: kdb_main: mark expected switch fall-throughs
In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through.
Addresses-Coverity-ID: 115090 ("Missing break in switch")
Addresses-Coverity-ID: 115091 ("Missing break in switch")
Addresses-Coverity-ID: 114700 ("Missing break in switch")
--- kernel/debug/kdb/kdb_main.c | 3 +++ 1 file changed, 3 insertions(+)
kernel/debug/kdb/kdb_main.c +3 -0
@@ -1545,13 +1545,16 @@ static void kdb_md_line(const char *fmtstr, unsigned long addr, *c++ =printable_char (*cp++); *c++ =printable_char (*cp++); addr +=4 ; +/* fall through */ case 4 : *c++ =printable_char (*cp++); *c++ =printable_char (*cp++); addr +=2 ; +/* fall through */ case 2 : *c++ =printable_char (*cp++); addr++; +/* fall through */ case 1 : *c++ =printable_char (*cp++); addr++;
Signature · 1 line
2.7.4
Quoted 7 lines · Gustavo A. R. Silva
In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through.
Addresses-Coverity-ID: 115090 ("Missing break in switch")
Addresses-Coverity-ID: 115091 ("Missing break in switch")
Addresses-Coverity-ID: 114700 ("Missing break in switch")Signed-off-by Gustavo A. R. Silva <[email protected]>
Adding fall through isn't wrong but its reasonable to ask why there is a complex hand unrolled loop here in the first place (and doubly so without a comment). The whole switch statement would be much clear expressed as:
for (j=0; j<bytesperword; j++) *c++ = printable_char(*cp++); addr += bytesperword;
Daniel.
Quoted 26 lines
--- kernel/debug/kdb/kdb_main.c | 3 +++ 1 file changed, 3 insertions(+)kernel/debug/kdb/kdb_main.c +3
-0@@ -1545,13 +1545,16 @@ static void kdb_md_line(const char *fmtstr, unsigned long addr, *c++ =printable_char (*cp++); *c++ =printable_char (*cp++); addr +=4 ; +/* fall through */ case 4 : *c++ =printable_char (*cp++); *c++ =printable_char (*cp++); addr +=2 ; +/* fall through */ case 2 : *c++ =printable_char (*cp++); addr++; +/* fall through */ case 1 : *c++ =printable_char (*cp++); addr++;
Hi Daniel,
Quoted 9 lines · Daniel Thompson
Quoted 7 lines · Gustavo A. R. Silva
In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through.
Addresses-Coverity-ID: 115090 ("Missing break in switch")
Addresses-Coverity-ID: 115091 ("Missing break in switch")
Addresses-Coverity-ID: 114700 ("Missing break in switch")Signed-off-by Gustavo A. R. Silva <[email protected]>
Quoted 6 lines
Adding fall through isn't wrong but its reasonable to ask why there is a complex hand unrolled loop here in the first place (and doubly so without a comment). The whole switch statement would be much clear expressed as:
for (j=0; j<bytesperword; j++)
*c++ =printable_char(*cp++);
addr += bytesperword;
Yeah, I agree. I can send a patch for that.
Thanks for the feedback.
--
Gustavo
Quoted 31 lines
Daniel.
Quoted 26 lines
---
kernel/debug/kdb/kdb_main.c| 3 +++1 file changed, 3 insertions(+)kernel/debug/kdb/kdb_main.c +1
-0@@ -1545,13 +1545,16 @@ static void kdb_md_line(const char *fmtstr, unsigned long addr, *c++ = printable_char(*cp++); *c++ = printable_char(*cp++); addr += 4; + /* fall through */case 4:
*c++ =printable_char(*cp++);
*c++ =printable_char(*cp++);
addr += 2;
+ /* fall through */
case 2:
*c++ =printable_char(*cp++);
addr++;
+ /* fall through */
case 1:
*c++ =printable_char(*cp++);
addr++;