...
Tool | Version | Checker | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Astrée |
| dead-assignment | Supported + partially checked | ||||||||||||
CodeSonar |
| DIAG.UNEX.* | Code not exercised by analysis | ||||||||||||
| NO_EFFECT DEADCODE
UNREACHABLE | Finds statements or expressions that do not accomplish anything or statements that perform an unintended action. Can detect the specific instance where code can never be reached because of a logical contradiction or a dead "default" in Can detect the instances where code block is unreachable because of the syntactic structure of the code | |||||||||||||
| CC2.MSC12 | Partially implemented | |||||||||||||
GCC | 3.0 | Options detect unused local variables, nonconstant static variables and unused function parameters, or unreachable code respectively. | |||||||||||||
Helix QAC |
| C3110, C3112, C3307, C3404, C3426, C3427 | |||||||||||||
Klocwork |
| CWARN.NOEFFECT.SELF_ASSIGN CWARN.NOEFFECT.UCMP.GE CWARN.NOEFFECT.UCMP.GE.MACRO CWARN.NOEFFECT.UCMP.LT CWARN.NOEFFECT.UCMP.LT.MACRO CWARN.NULLCHECK.FUNCNAME EFFECT MISRA.STMT.NO_EFFECT UNREACH.GEN UNREACH.RETURN UNREACH.SIZEOF UNREACH.ENUM LA_UNUSED VA_UNUSED.GEN VA_UNUSED.INIT INVARIANT_CONDITION.UNREACH | |||||||||||||
LDRA tool suite |
| Partially implemented | |||||||||||||
Parasoft C/C++test |
| CERT_C-MSC12-a | There shall be no unreachable code in "else" block | ||||||||||||
PC-lint Plus |
| 438, 474, 505, 522, 523, | Fully supported | ||||||||||||
Polyspace Bug Finder |
| Checks for:
Rec. partially covered. | PRQA QA-C | ||||||||||||
Include Page | PRQA QA-C_v | PRQA QA-C_v | 3110, 3112, 3307, 3404, 3426, 3427 | Partially implemented | |||||||||||
RuleChecker |
| dead-assignment | Partially checked | ||||||||||||
SonarQube C/C++ Plugin |
| S1764, S2589, S2583, S1116, S1172, S1763, S1862, S1065, S1656, S2754, S1751 | |||||||||||||
Splint |
| | The default mode checks for unreachable code. | ||||||||||||
| V551, V606, V649, V779 |
...