CWARN.EMPTY.LABEL

Empty label statement

The CWARN.EMPTY.LABEL checker finds switch statements in which a label is immediately followed by a closing parenthesis (}).

Vulnerability and risk

This type of situation is normally a syntax mistake or typo that could cause unintended program behavior.

Vulnerable code example

1  void foo() {
2    switch(c) {
3      case 'a': return;
4      case 'b':           
5    }
6  }

Klocwork flags line 4, which contains a switch label with no following expression.

Fixed code example

1  void foo() {
2    switch(c) {
3      case 'a': return;
4      case 'b': break;          
5    }
6  }

The fixed example shows an action for case b.