...
Tool | Version | Checker | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
Astrée |
| CERT.EXP.10evaluation-order | Partially checked | ||||||
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 | 9.5 | MISRA2004-12_2_{a,b,c,d} | Fully implemented | ||||||
PRQA QA-C |
| 3226,3326,0400, 0401, 0402,0403 | Partially implemented | ||||||
RuleChecker |
| CERT.EXP.10evaluation-order | Partially checked |
A programmer could also violate the recommendation using dynamic memory passed to both functions, but that would be extremely difficult to detect using static analysis.
...