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

Copy
  void foo() {
    switch(c) {
      case 'a': return;
      case 'b':           
    }
  }

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

Fixed code example

Copy
  void foo() {
    switch(c) {
      case 'a': return;
      case 'b': break;          
    }
  }

The fixed example shows an action for case b.