...
Tool | Version | Checker | Description | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Astrée |
| Supported, but no explicit checker | ||||||||
| CodeSonar |
| LANG.TYPE.AWID LANG.CAST.VALUE ALLOC.SIZE.ADDOFLOW | Expression value widened by assignment Cast alters value Addition overflow of allocation size | |||||||
| Compass/ROSE | Can detect violations of this rule. It should look for patterns of
| |||||||||
| Coverity | 6.5 | OVERFLOW_BEFORE_WIDEN | Fully implemented | |||||||
| LDRA tool suite |
| 452 S | Partially implemented | |||||||
| Parasoft C/C++test |
| CERT_C-INT18-a | Avoid possible integer overflow in expressions in which the result is assigned to a variable of a wider integer type | |||||||
| Polyspace Bug Finder |
| Tainted sign change conversion | Checks for integer overflow and unsigned integer overflow (rec. fully covered) Overflow when converting between integer types Overflow from operation between integers Value from an unsecure source changes sign Overflow when converting between unsigned integer types Both operands of an operator in which usual arithmetic conversions are performed shall have the same category The value of a composite expression shall not be assigned to an object with wider essential type If a composite expression is used as one operand of an operator in which the usual arithmetic conversions are performed then the other operand shall not have wider essential type | |||||||
| PRQA QA-C |
| 1890, 1891, 1892, | Partially implemented |
...