|
@@ -3448,8 +3448,22 @@ sub process {
|
|
|
|
|
|
# check for multiple semicolons
|
|
|
if ($line =~ /;\s*;\s*$/) {
|
|
|
- WARN("ONE_SEMICOLON",
|
|
|
- "Statements terminations use 1 semicolon\n" . $herecurr);
|
|
|
+ WARN("ONE_SEMICOLON",
|
|
|
+ "Statements terminations use 1 semicolon\n" . $herecurr);
|
|
|
+ }
|
|
|
+
|
|
|
+# check for switch/default statements without a break;
|
|
|
+ if ($^V && $^V ge 5.10.0 &&
|
|
|
+ defined $stat &&
|
|
|
+ $stat =~ /^\+[$;\s]*(?:case[$;\s]+\w+[$;\s]*:[$;\s]*|)*[$;\s]*\bdefault[$;\s]*:[$;\s]*;/g) {
|
|
|
+ my $ctx = '';
|
|
|
+ my $herectx = $here . "\n";
|
|
|
+ my $cnt = statement_rawlines($stat);
|
|
|
+ for (my $n = 0; $n < $cnt; $n++) {
|
|
|
+ $herectx .= raw_line($linenr, $n) . "\n";
|
|
|
+ }
|
|
|
+ WARN("DEFAULT_NO_BREAK",
|
|
|
+ "switch default: should use break\n" . $herectx);
|
|
|
}
|
|
|
|
|
|
# check for gcc specific __FUNCTION__
|