 
                            ...
This compliant solution explicitly checks for the unexpected condition and handles it appropriately.:
| Code Block | ||||
|---|---|---|---|---|
| 
 | ||||
| if (a == b) {
  /* ... */
}
else if (a == c) {
  /* ... */
}
else {
  /* Handle error condition */
}
 | 
...
| Tool | Version | Checker | Description | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Compass/ROSE | Can detect some violations of this recommendation. In particular, it flags switch statements that do not have a default clause. ROSE should detect "fake switches" as well (that is, a chain of    if (x > 0) {
	  /* ... */
  } else if (x < 0) {
    /* ... */
  } else if (x == 0) {
    /* ... */
  }
 | ||||||||
| GCC | 
 | Can detect some violations of this recommendation when the  | |||||||
| Klocwork | 
 | LA_UNUSED | |||||||
| 
 | 12 S | Fully implemented. | |||||||
| PRQA QA-C | 
 | 0597 | Fully implemented | 
...