...
Tool | Version | Checker | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
Astrée |
| evaluation-order multiple-volatile-accesses | Partially checked | ||||||
Axivion Bauhaus Suite |
| CertC-EXP10 | Fully implemented | ||||||
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 | |||||||
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 | ||||||
Polyspace Bug Finder |
| MISRA CERT C: 2012 Rule 13.2Rec. EXP10-C | Checks for situations where expression value depends on order of evaluation or side effects (rec. fully covered)The value of an expression and its persistent side effects shall be the same under all permitted evaluation orders | ||||||
PRQA QA-C |
| 0400 [U], 0401 [U], 0402 [U], 0403 [U], 0404 [U], 0405 [U], 3226, 3326 | Partially implemented | ||||||
PVS-Studio |
| V521, V681 | |||||||
RuleChecker |
| evaluation-order multiple-volatile-accesses | Partially checked |
...