MISRA Discussion Forums

Full Version: Unreachable break in a case statement
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I have recently come across two different rule interpretations of the following code:

Code:
switch(cond)
{
  case 0:
  {
    /* A deliberate infinite loop. */
    for ( ; ; ) { }
    
    /* Unreachable break statement. */
    break;
  }
  [ … ]
}
One MISRA checker insists on the break statement referring to rule 15.2, while the other insists that the break statement is unreachable code according to rule 14.1.

Both rules are required, however, both can not be enforced in this case. Which rule supersedes the other?
In situations such as this, Rule 15.2 takes priority. So, the break statement shall be present and a deviation needs to be raised against Rule 14.1 justifying the unreachability of the break.