...
Tool | Version | Checker | Description | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Astrée |
| evaluation-order multiple-volatile-accesses | Partially checked | |||||||||||||
Axivion Bauhaus Suite |
| CertC-EXP10 | Fully implemented | |||||||||||||
CodeSonar |
| LANG.STRUCT.SE.IOE | Indeterminate Order of Evaluation | |||||||||||||
Compass/ROSE | Could detect violations of this recommendation by searching for the following pattern:
| |||||||||||||||
| EVALUATION_ORDER | Can detect the specific instance where a statement contains multiple side effects on the same value with an undefined evaluation order because the statement may behave differently with different compiler flags or different compilers or platforms | ||||||||||||||
Helix QAC |
| C0400, C0401, C0402, C0403, C0404, C0405, C3226, C3326 | ||||||||||||||
LDRA tool suite |
| 35 D, 72 D, 1 Q, 134 S | Fully implemented | |||||||||||||
Parasoft C/C++test |
| CERT_C-EXP10-a | The value of an expression shall be the same under any order of evaluation that the standard permits | |||||||||||||
PC-lint Plus |
| 564, 931 | Partially supported | |||||||||||||
Polyspace Bug Finder |
| MISRA CERT C: 2012 Rule 13.2 | The value of an expression and its persistent side effects shall be the same under all permitted evaluation orders | PRQA QA-C | ||||||||||||
Include Page | PRQA QA-C_v | PRQA QA-C_v | 0400, 0401, 0402, 0403, 0404, 0405, 3226, 3326 | Rec. EXP10-C | Checks for situations where expression value depends on order of evaluation or side effects (rec. fully covered) Partially implemented | |||||||||||
PVS-Studio |
| V521, V681 | ||||||||||||||
RuleChecker |
| evaluation-order multiple-volatile-accesses | Partially checked |
...