 
                            ...
| Tool | Version | Checker | Description | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Astrée | 
 | missing-else switch-default | Partially checked | ||||||
| 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 | 
 | CWARN.EMPTY.LABEL LA_UNUSED MISRA.IF.NO_ELSE MISRA.SWITCH.WELL_FORMED.DEFAULT.2012 INFINITE_LOOP.GLOBAL INFINITE_LOOP.LOCAL INFINITE_LOOP.MACRO | |||||||
| LDRA tool suite | 
 | 48 S, 59 S | Fully implemented | ||||||
| Parasoft C/C++test | 
 | CERT_C-MSC01-a | All 'if...else-if' constructs shall be terminated with an 'else' clause The final clause of a switch statement shall be the default clause | ||||||
| Polyspace Bug Finder | 
 | Checks for missing case for switch condition (rule partially covered) | |||||||
| PRQA QA-C | 
 | 2000, 2002, 2004 | Fully implemented | ||||||
| PVS-Studio | 
 | V517, V533, V534, V535, V547, V556, V560, V577, V590, V600, V612, V695, V696, V719, V722, V747, V785, V786 | |||||||
| RuleChecker | 
 | missing-else switch-default | Partially checked | ||||||
| SonarQube C/C++ Plugin | 
 | 
...